-1

我听说 List<T>.AddRange(IEnumerable<T>)new List<T>(IEnumerable<T>). 在查看反射器后,我无法解释为什么在创建测试应用程序后会出现广告。确实,我发现它更快。

有谁知道为什么?

4

1 回答 1

1

抱歉,我无法证实您的假设。AddRange 总是比构造函数变体慢。

我为它做了一些测试代码:

一种)var list = new List<T>(enumerable);

b)var list = new List<T>(); list.AddRange(enumerable);

用不同的 IEnumerables 测试

列表:新:32ms addrange:47ms

LinkedList:新:58ms addrange:99ms

HashSet:新:56ms addrange:98ms

队列:新:271ms addrange:516ms

于 2012-05-21T09:42:26.390 回答