zoukankan      html  css  js  c++  java
  • C#中foreach遍历学习笔记

    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    
    namespace ForeachDemo
    {
        class Program
        {
            static void Main()
            {
                Mylist list = new Mylist();
                MyList2 list2 = new MyList2();
                foreach (string str in list)
                {
                    Console.WriteLine(str);
                }
                Console.WriteLine("==========================================");
                foreach (string str in list2)
                {
                    Console.WriteLine(str);
                }
            }
        }
    
        class Mylist : IEnumerable                                                                  //通过yield return 来返回,实现IEnumerable接口
        {
            static string[] testString= { "0", "2", "4", "6" ,"8"};
    
            public IEnumerator GetEnumerator()
            {
                foreach (string str in testString)
                {
                    yield return  str;
                }
            }
        }
    
        class MyList2 : IEnumerable                                                                 //实现自己的IEnumerator来实现
        {
            static string[] testString2 = { "1", "3", "5", "7", "9" };
            public IEnumerator GetEnumerator()
            {
                return new MyEnumerator();
            }
            private class MyEnumerator : IEnumerator
            {
                int index = -1;
                public object Current
                {
                    get
                    {
                        return testString2[index];
                    }
                }
    
                public bool MoveNext()
                {
                    if (++index >= testString2.Length)
                    { 
                        return false;
                    }
                    else
                    {
                        return true;
                    }
                }
    
                public void Reset()
                {
                    index = -1;
                }
    
            }
        }
    
    }

    参考:

    http://www.cnblogs.com/jesse2013/p/CollectionsInCSharp.html

    http://www.cnblogs.com/kingcat/archive/2012/07/11/2585943.html

    本博客文章皆出于学习目的,个人总结或摘抄整理自网络。引用参考部分在文章中都有原文链接,如疏忽未给出请联系本人。另外,作为一名菜鸟程序媛,如文章内容有错误,欢迎点击博客右上方的扣扣链接指导交流。
  • 相关阅读:
    multimap-rebgin
    multiset-lower_bound
    multiset-lower_bound
    multimap-max_size
    multimap-max_size
    multimap-find
    最小生成树之prim算法
    最小生成树的邻接矩阵实现
    最短路径:(Dijkstra & Floyd)
    邻接表实现图的储存,遍历
  • 原文地址:https://www.cnblogs.com/goingforward/p/4962048.html
Copyright © 2011-2022 走看看