延遲執行的好處 - 構建查詢

在評估值之前,延遲執行允許組合不同的操作來構建最終查詢:

var list = new List<int>() {1,1,2,3,5,8};
var query = list.Select(x => x + 1);

如果我們在此時執行查詢:

foreach (var x in query) {
    Console.Write($"{x} ");
}

我們會得到以下輸出:

2 2 3 4 6 9

但我們可以通過新增更多運算子來修改查詢:

Console.WriteLine();
query = query.Where(x => x % 2 == 0);
query = query.Select(x => x * 10);

foreach (var x in query) {
    Console.Write($"{x} ");
}

輸出:

20 20 40 60