我听说List<T>.AddRange(IEnumerable<T>)
比new List<T>(IEnumerable<T>)
快。在查看反射器后,我无法告诉为什么广告一旦我创建了测试应用程序确实我看到它更快。
有谁知道为什么?
答案 0 :(得分:1)
抱歉,我无法确认您的假设。 AddRange总是慢于构造函数变体。
我为它制作了一些测试代码:
a)var list = new List<T>(enumerable);
比
快 b)var list = new List<T>(); list.AddRange(enumerable);
使用不同的IEnumerables进行测试
列表:新:32ms addrange:47ms
LinkedList:new:58ms addrange:99ms
HashSet:new:56ms addrange:98ms
队列:新:271ms addrange:516ms