C#中的迭代器
迭代器对集合执行自定义迭代。它使用yieldreturn语句并一次返回每个元素。迭代器记住当前位置,并在下一次迭代中返回下一个元素。
以下是一个例子-
示例
using System;
using System.Collections.Generic;
using System.Linq;
namespace Demo {
class Program {
public static IEnumerable display() {
int[] arr = new int[] {99,45,76};
foreach (var val in arr) {
yield return val.ToString();
}
}
public static void Main(string[] args) {
IEnumerable ele = display();
foreach (var element in ele) {
Console.WriteLine(element);
}
}
}
} 输出结果99 45 76
上面,我们有一个迭代器方法display(),它使用yield语句一次返回一个元素-
public static IEnumerabledisplay() { int[] arr = new int[] {99,45,76}; foreach (var val in arr) { yield return val.ToString(); } }
结果被存储,每个元素被迭代和打印-
IEnumerableele = display(); foreach (var element in ele) { Console.WriteLine(element); }