|
1
6
从 Enumerable.Cast() 评论:
所有的LINQ操作符都会让您知道它们是延迟执行还是立即执行查询。此外,以下是标准的LINQ运算符,它们不会被延迟:
|
|
|
2
3
不,不是。它只在迭代IEnumerable时执行强制转换。 没有任何确定的方法(在代码中)来知道一个方法是否会使用延迟执行。文档将是您最好的朋友,因为它将告诉您是否推迟执行。 但是,这并不意味着如果文档不清楚,您就不能做出一些假设。 如果您有一个方法返回另一个列表/结构(如ToList、ToArray),那么它必须执行查询以填充新的数据结构。 如果该方法返回一个标量值,则必须执行查询以生成该标量值。
除此之外,如果它只是返回
|
|
|
3
0
你要找的是“延期执行”。只在尝试访问数据时才运行延迟执行的语句。像to list这样的语句会立即执行,因为需要将数据转换为列表。 强制转换可以等到您实际访问它,所以它是一个延迟语句。 |
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |