【发布时间】:2019-06-15 07:41:03
【问题描述】:
在 C# 中,就编写代码所需的时间而言,使用IEnumerable 创建和填充列表的最快方法是什么?执行所需的时间呢?
我的第一个想法是这样的:
List<int> list = new List<int>();
foreach(int number in iterator)
list.Add(number);
有没有更快的方法?
【问题讨论】:
-
enumerable.ToList()? -
有可用的优化,具体取决于
IEnumerable的类型。如果您能提供minimal reproducible example,那就太好了。 -
'“执行速度最快”可能与“写入速度最快”、可读性、可维护性等相互竞争。后一个问题可以被认为比执行时间更重要。除非不是。
-
List<int> list = iterator.ToList();将调用new List<int>(iterator),它将分析所提供的集合类型,针对一些基本场景进行优化,然后在所有其他方法都失败时回退到您拥有的代码。为什么你需要找到比这更快的方法?下一个优化方法是,如果你不能让代码更快,运行它的次数更少,那么你真的需要构造那个列表吗?
标签: c# list collections iterator ienumerable