簡單用法
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
迴圈的下一次迭代期間。