C#语法手册

迭代器语法


迭代器用于循环访问集合,几乎每个程序都会使用到。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CSGDemo.CSG018
{
    //https://docs.microsoft.com/zh-cn/dotnet/csharp/iterators



    //#csg018-01 迭代器的含义
    //Iterator(迭代器),在C#定义迭代功能的接口为 IEnumerable<T>,含义是“可枚举对象”,在这里它和“可迭代”含义相同。
    //可枚举接口的类型需要返回一个 IEnumerator<T> 对象,含义是枚举器,也就是迭代器。


    //#csg018-02 迭代器作用
    //可枚举对象支持使用 foreach 关键字进行遍历。
    //另外 几乎所有的.NET集合类型都实现了 IEnumerable 或 IEnumerable<T> 接口。


    //#csg018-03,遍历 IEnumerable<T> 对象
    class DemoClass1
    {
        public void DemoMethod1()
        {
            var list = new int[] { 1, 2, 3, 4, 5, 6, 7 };
            //#csg018-03
            foreach (var value in list)
            {
                Console.WriteLine(value);
            }
        }



        //#csg018-04,迭代器方法
        //迭代器方法用于创建可用于枚举的数据源,当数据被请求时以顺序的方式创建数据对象。
        public IEnumerable<int> GetSingleDigitNumbers()
        {
            yield return 0;
            yield return 1;
            yield return 2;
            yield return 3;
            yield return 4;
            yield return 5;
            yield return 6;
            yield return 7;
            yield return 8;
            yield return 9;
        }


    }


}