我听说 List<T>.AddRange(IEnumerable<T>)
比new List<T>(IEnumerable<T>)
. 在查看反射器后,我无法解释为什么在创建测试应用程序后会出现广告。确实,我发现它更快。
有谁知道为什么?
我听说 List<T>.AddRange(IEnumerable<T>)
比new List<T>(IEnumerable<T>)
. 在查看反射器后,我无法解释为什么在创建测试应用程序后会出现广告。确实,我发现它更快。
有谁知道为什么?
抱歉,我无法证实您的假设。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