延迟执行的好处 - 查询当前数据
使用延迟执行时,如果要查询的数据发生更改,查询对象将在执行时使用数据,而不是在定义时使用。
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