C#中的迭代器函数

迭代器方法对集合执行自定义迭代。它使用yield return语句并一次返回每个元素。迭代器记住当前位置,并在下一次迭代中返回下一个元素。

以下是一个例子-

示例

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 IEnumerable display() {
   int[] arr = new int[] {99,45,76};

   foreach (var val in arr) {
      yield return val.ToString();
   }
}

存储结果,并迭代和打印每个元素-

IEnumerable ele = display();
foreach (var element in ele) {
   Console.WriteLine(element);
}