Erw*_*yer 6 c# linq collections complexity-theory interface
使用分析,我发现,当调用LINQ的扩展方法.Last()上的实现IReadOnlyList,GetEnumerator()并且MoveNext()将被调用,直到集合的结尾,而不是使用与O(1)复杂性的指标。对于IList,没有这样的问题,因为扩展方法使用可用索引(参见此处的反射器代码)。
似乎 Linq 需要更新才能IReadOnlyList像IList.
同时,实现 O(1) 复杂度的唯一方法是确保Last()在我的类中显式实现,以便不使用 Linq 扩展方法。
| 归档时间: |
|
| 查看次数: |
1419 次 |
| 最近记录: |