LINQ使用延迟执行模型,这意味着在调用Linq运算符时不返回结果序列,而是这些运算符返回一个对象,该对象只有在枚举此对象时才会生成序列的元素.
虽然我理解延迟查询是如何工作的,但我在理解延迟执行的好处时遇到了一些麻烦:
1)我已经读过只有在你真正需要结果时执行的延迟查询才会有很大的好处.那么这个好处是什么?
2)延迟查询的其他优点是,如果您定义一次查询,那么每次枚举结果时,如果数据发生更改,您将得到不同的结果.
a)但是从下面的代码中可以看出,我们能够实现相同的效果(因此,每次枚举资源时,如果数据发生变化,我们会得到不同的结果),即使不使用延迟查询:
List<string> sList = new List<string>( new[]{ "A","B" });
foreach (string item in sList)
Console.WriteLine(item); // Q1 outputs AB
sList.Add("C");
foreach (string item in sList)
Console.WriteLine(item); // Q2 outputs ABC
Run Code Online (Sandbox Code Playgroud)
3)延期执行是否还有其他好处?
linq ×1