我想知道 LINQ 方法是否像 .Last
和.Skip
针对数组进行了优化,List<T>
等等。例如。对于数组我可以做 _array[_array.Length - 1]
获取最后一个元素。是_array.Last()
实际上枚举了所有元素,然后返回最后一个元素,或者实际上是否内置了一些优化?
如果不是的话,可能不得不为了性能而放弃流畅性。
最佳答案
Last()
当没有谓词时被优化...即使有谓词也可以被优化(通过从末尾开始工作),但它不是.
我不认为 Skip
已优化 - 不过,它可能是优化的。
基本上,大多数 LINQ to Objects 都已尽可能地进行了优化(对于 ICollection<T>
、 ICollection
和 IList<T>
),但仍有更多空间。
关于linq - LINQ .Last、.Skip 等方法是否针对数组或 List<T> 进行了优化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3545180/