Dictionary <,>.SetCapacity(int newCapacity)在哪里?

Eug*_*sky 11 .net dictionary

如果我想立即添加大量项目Dictionary并且我事先知道(粗略)数字,如果我使用适当的构造函数重载设置初始容量,则在内存和cpu方面更快更有效.

在我测试的情况下,使用300.000个条目,如果我将Dictionary的容量设置为300.000,它比未初始化时快约25%.

现在如果我有一个已经构建的,清空的词典,我需要填充大量的项目,我该怎么办?假设这是一个readonly我无法用新的Dictionary实例重新分配的变量.我没有看到任何影响文档中已构造的Dictionary的容量的内容.像一个像一个东西Clear(int newInitialCapacity)会很好.

我运气不好吗?

Eug*_*sky 0

看起来答案是:是的,我运气不好。已经构建的字典的容量无法更改,当然除非通过逐一添加元素来增量地更改。

如果 .netDictionary有一个AddAll(..)类似于Java 的putAll 的方法,那么我就可以将其留给聪明的Dictionary实现者。