我想知道像.Last
和.Skip
这样的LINQ方法是否针对数组List<T>
等进行了优化。例如。对于数组,我可以_array[_array.Length - 1]
来获取最后一个元素。 _array.Last()
实际上是通过所有元素枚举然后返回最后一个还是内置了一些优化?
如果没有,可能不得不放弃表现。
答案 0 :(得分:5)
Last()
会被优化...即使存在谓词,也可以进行优化(通过从结束),但事实并非如此。
我认为 Skip
已经过优化 - 尽管如此,它可能是。
基本上 LINQ to Objects的大多数都经过优化(适用于ICollection<T>
,ICollection
和IList<T>
),但仍有更多空间可供使用来。