延遲執行的好處 - 查詢當前資料
使用延遲執行時,如果要查詢的資料發生更改,查詢物件將在執行時使用資料,而不是在定義時使用。
var data = new List<int>() {2, 4, 6, 8};
var query = data.Select(x => x * x);
如果我們使用立即方法或 foreach
在此時執行查詢,則查詢將在偶數列表上執行。
但是,如果我們更改列表中的值:
data.Clear();
data.AddRange(new [] {1, 3, 5, 7, 9});
或者即使我們為 data
分配一個新列表:
data = new List<int>() {1, 3, 5, 7, 9};
然後執行查詢,查詢將對 data
的新值進行操作:
foreach (var x in query) {
Console.Write($"{x} ");
}
並將輸出以下內容:
1 9 25 49 81