linq - LINQ .Last、.Skip 等方法是否针对数组或 List<T> 进行了优化?

标签 linq arrays optimization

我想知道 LINQ 方法是否像 .Last.Skip针对数组进行了优化,List<T>等等。例如。对于数组我可以做 _array[_array.Length - 1]获取最后一个元素。是_array.Last()实际上枚举了所有元素,然后返回最后一个元素,或者实际上是否内置了一些优化?

如果不是的话,可能不得不为了性能而放弃流畅性。

最佳答案

Last()没有谓词时被优化...即使有谓词也可以被优化(通过从末尾开始工作),但它不是.

我不认为 Skip已优化 - 不过,它可能是优化的。

基本上,大多数 LINQ to Objects 都已尽可能地进行了优化(对于 ICollection<T>ICollectionIList<T> ),但仍有更多空间。

关于linq - LINQ .Last、.Skip 等方法是否针对数组或 List<T> 进行了优化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3545180/

相关文章:

c# - 如何在 C# 中重用 "var"声明的变量

JavaScript 数组indexOf()方法不起作用

scala - Scala 编译器会提升正则表达式吗

c++ - 内联类方法的寄存器优化不足

c# - mvc 上的 Linq 查询错误

c# - 为此 : 使用 linq

c# - 将此代码转换为 LINQ?

php - laravel中如何转换$request格式

c++ - 在编译时推导二维数组的一维

java - 给定一组选项找到最小的三元组