簡單用法

yield 關鍵字用於定義一個函式,該函式返回 IEnumerableIEnumerator(以及它們的派生泛型變體),當呼叫者迭代返回的集合時,其值會被懶惰地生成。在備註部分閱讀有關目的的更多資訊。

以下示例具有一個在 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 小提琴現場演示

foreach 語句體的每次迭代都會建立對 Count 迭代器函式的呼叫。對迭代器函式的每次呼叫都會進行到 yield return 語句的下一次執行,這發生在 for 迴圈的下一次迭代期間。