C#简单用法

示例

所述yield关键字被用于定义返回一个函数IEnumerable或IEnumerator其值作为主叫遍历返回的集合被懒惰地生成(以及它们的衍生通用的变体)。在备注部分中阅读有关目的的更多信息。

以下示例在for循环内包含yield return语句。

public static IEnumerable<int> Count(int start, int count)
{
    for (int i = 0; i <= count; i++)
    {
        yield return start + i;
    }
}

然后可以调用它:

foreach (int value in Count(start: 4, count: 10))
{
    Console.WriteLine(value);
}

控制台输出

4
5
6
...
14

.NET Fiddle上的实时演示

foreach语句主体的每次迭代都会创建对Count迭代器函数的调用。每次对迭代器函数的调用都会继续执行该yield return语句,该执行在for循环的下一次迭代期间进行。