熱切的評價
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();
呼叫 ToList
,ToDictionary
或 ToArray
將強制立即評估列舉,將所有元素檢索到集合中。