字典末尾的()是什么

本文关键字:是什么 字典 | 更新日期: 2023-09-27 18:28:52

我是C#的新手,但我从未理解字典末尾的()是什么意思!

假设我有一个类,我声明一个字段,如下所示:

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

然后,在构造函数上,我有:

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

结尾的6是什么意思?非常感谢。

字典末尾的()是什么

来自MSDN:

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

这就是字典的初始大小。

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

6是初始容量。这是一个温和的迹象,表明它将有多大,这不是任何形式的限制。

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

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

这意味着6是相当低的,几乎没有价值。