gpt4 book ai didi

c# - IEnumerable 上的 ToList() 如何工作?

转载 作者:太空狗 更新时间:2023-10-29 18:04:42 29 4
gpt4 key购买 nike

扩展方法 ToList() 是如何工作的?假设我有一个包含 10000 个项目的 IEnumerableToList() 会创建一个新的 List 并遍历 10000 项的 IEnumerable 然后返回给我一个 List还是 .NET 以其他方式做到这一点?

MSDN link谈论立即执行数据库查询。我的问题只是关于将 IEnumerable 转换为 List

最佳答案

它不一定会迭代,尽管这是“最坏情况”的情况。基本上它调用 new List<T>(source) , 但这有一些技巧:如果源实现 ICollection<T> , 构造函数可以调用 ICollection<T>.CopyTo() 将完整数据复制到数组中。这可能比单步迭代更有效地实现。同样在 ICollection<T>在这种情况下,新列表知道开始时的最终大小,因此它不需要继续扩展其内部缓冲区。

有关更多详细信息,请参阅我的 Edulinq ToList() blog post .

关于c# - IEnumerable 上的 ToList() 如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13738329/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com