熱切的評價

yield 關鍵字允許對集合進行延遲評估。將整個集合強制載入到記憶體中稱為急切評估

以下程式碼顯示了這一點:

IEnumerable<int> myMethod()
{
    for(int i=0; i <= 8675309; i++)
    {
        yield return i;
    }
}
...
// define the iterator
var it = myMethod.Take(3);
// force its immediate evaluation
// list will contain 0, 1, 2
var list = it.ToList();

呼叫 ToListToDictionaryToArray 將強制立即評估列舉,將所有元素檢索到集合中。