延迟执行的好处 - 构建查询

在评估值之前,延迟执行允许组合不同的操作来构建最终查询:

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