为什么不使用Linq优化IReadOnlyList?

时间:2013-06-15 19:11:54

标签: c# linq collections interface complexity-theory

使用分析器,我发现在.Last()的实现上调用Linq扩展方法IReadOnlyList时,将调用GetEnumerator()MoveNext(),直到结束集合而不是使用具有O(1)复杂性的索引。 对于IList,没有这样的问题,因为扩展方法使用可用索引(参见反射器代码here)。

似乎需要更新Linq才能像IReadOnlyList一样有效地支持IList

同时,实现O(1)复杂性的唯一方法是确保在我的类中显式实现Last(),以便不使用Linq扩展方法。

0 个答案:

没有答案