Lea*_*Dev 13 c# linq ienumerable
一般情况下,我使用a List然后返回它们,IEnumerable因为我不再需要更新它们.
但是,我遇到了一个问题,我实际上需要通过它们进行枚举,但首先需要知道计数.
将IEnumerable枚举每个项目并找到计数(O(N)),还是依赖于ListCount属性(O(1))?
另外,如果IEnumerable是LINQ查询的结果怎么办?
Jon*_*eet 14
IEnumerable会枚举每个项目并找到计数(O(N)),还是依赖于List的Count属性(O(1))?
它将使用该Count属性.基本上,实现检查对象是否实现,ICollection<T>或者如果是ICollection,则调用相关Count属性.(非泛型的使用ICollection仅在.NET 4中引入;在.NET 3.5中它只注意到ICollection<T>.)
这只是证明了ICollection<T>,但是:
如果源类型实现
ICollection<T>,则使用该实现来获取元素的数量.否则,此方法确定计数.
| 归档时间: |
|
| 查看次数: |
254 次 |
| 最近记录: |