面试题答案
一键面试延迟执行
- 概念:延迟执行意味着 LINQ 查询表达式不会在定义时立即执行,而是在实际枚举结果时才执行。这允许对查询进行优化,因为只有在真正需要数据时才会进行计算。
- 区别:与立即执行相比,延迟执行不会立刻产生结果,而是构建一个查询计划,直到有需要时才执行。
- 示例方法:
Where
方法。例如:var query = numbers.Where(n => n > 5);
这里只是定义了查询,并未实际执行。当使用foreach
循环遍历query
时,如foreach (var num in query) { /* 执行操作 */ }
,查询才会执行,即Where
条件会在此时应用到numbers
集合的每个元素上。
立即执行
- 概念:立即执行的 LINQ 方法会在调用时立即对查询进行求值并返回结果。
- 区别:立即执行会马上计算出最终结果,与延迟执行的构建查询计划等待枚举不同。
- 示例方法:
ToList
方法。例如:var list = numbers.Where(n => n > 5).ToList();
当执行到ToList
时,Where
子句的筛选操作会立即执行,并将符合条件的元素收集到一个新的List<T>
中返回。