Jac*_*ack 8 .net c# ienumerable list
扩展方法如何ToList()
工作?说我有IEnumerable
10000件物品.将ToList()
创建一个新的List
并迭代IEnumerable
10000个项目,然后返回我List
或.NET以其他方式做它?
此MSDN链接讨论了数据库查询的立即执行.我的问题只是转换IEnumerable
为List
.
Jon*_*eet 22
它不一定会迭代,尽管这是"最坏情况"的情况.基本上它调用new List<T>(source)
,但它有一些技巧:如果源实现ICollection<T>
,构造函数可以调用ICollection<T>.CopyTo()
将完整的数据复制到数组中.与单步迭代相比,这可以更有效地实现.同样在这种ICollection<T>
情况下,新列表知道要开始的最终大小,因此不需要继续扩展其内部缓冲区.
有关更多详细信息,请参阅我的Edulinq ToList()
博客文章.
归档时间: |
|
查看次数: |
2730 次 |
最近记录: |