0

I'm new to C#, but I never understood what the () at the end of a dictionary means!

Let's say I have a class, and I declare a field like this:

public Dictionary<InventoryType, Inventory> Inventory { get; private set; }

And then, on the constructor, I have:

Inventory = new Dictionary<InventoryType, Inventory>(6);

What does the 6 at the end means? Thank you!

4

2 回答 2

4

来自MSDN

Dictionary(Int32) 初始化 Dictionary 类的新实例,该实例为空,具有指定的初始容量,并为键类型使用默认相等比较器。

所以它是字典的初始大小。

查看这个问题,了解为什么要设置初始容量。

于 2013-08-25T09:11:08.703 回答
4

6就是初始容量。这是一个软指示,表明该系列有多大,它不是任何形式的限制。

当您知道一个集合将包含一定数量的元素时,一次为这些元素分配空间会稍微高效一些。否则,集合将使用一种算法来增长,但这涉及复制数据。

大多数集合以 capcity=4 开始,当它被填充时,它们会增长到 8,然后增长到 16 等等。每次分配一个新的内部数组(取决于实际集合)并且必须复制现有数据。

这意味着 6 相当低,几乎不值得。

于 2013-08-25T09:10:28.283 回答