简单用法
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
foreach
语句体的每次迭代都会创建对 Count
迭代器函数的调用。对迭代器函数的每次调用都会进行到 yield return
语句的下一次执行,这发生在 for
循环的下一次迭代期间。