C# yield简单迭代

心已入冬 提交于 2020-02-29 13:20:35

在我们使用foreach的时候其实每一个集合都是实现是IEnumerable接口的 , 如果没有实现你循环肯定是行不通的, 那么假如没有实现我们自己怎么实现呢,这个是yield是最好的帮助:

 public static  IEnumerable<int> Power(int number, int exponent)
        {
            yield return 3;
            yield return 5;
            yield return 8;
             
        }
 static void Main(string[] args)
        {
            var result = Power(2, 8);
            foreach (int i in result)
            {
                Console.Write("{0} ", i);
            }
            Console.ReadKey();
        }

结构肯定是 3 5 8

注意: yield的返回类型一定要是IEnumerable, 通过 foreach 语句或 LINQ 查询来使用迭代器方法。 foreach 循环的每次迭代都会调用迭代器方法。 迭代器方法运行到 yield return 语句时,会返回一个 expression,并保留当前在代码中的位置。 当下次调用迭代器函数时执行从该位置重新启动。 可以使用 yield break 语句来终止迭代。 他的好处就是不需要我们在手动去实现迭代, 简便代码, 如此而已,当然现实中需要实现的情况并不是很多

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!