迭代器返回的是一个枚举器
代码
static void Main(string[] args) { MyClass myClass = new MyClass(); foreach (string item in myClass) { Console.WriteLine($"{item}"); } Console.ReadLine(); } } class MyClass {public IEnumerator<string> GetEnumerator() { return BlackAndWhite(); } //利用迭代器返回是一个枚举器。 public IEnumerator<string> BlackAndWhite() { yield return "black"; yield return "gray"; yield return "white"; } }
示例2用迭代器创建一个可枚举体
static void Main(string[] args) { MyClass myClass = new MyClass(); foreach (string item in myClass.BlackAndWhite())//不是可枚举类的时候,可以使用这个方式循环。 { Console.WriteLine($"{item}"); } foreach (string item in myClass) { Console.WriteLine($"{item}"); } Console.ReadLine(); } } class MyClass {public IEnumerator<string> GetEnumerator()//当这个没有的时候,不是可枚举类。 { IEnumerable<string> myEnumerator = BlackAndWhite(); return myEnumerator.GetEnumerator(); } public IEnumerable<string> BlackAndWhite() { yield return "black"; yield return "gray"; yield return "white"; } }