字典末尾的()是什么
本文关键字:是什么 字典 | 更新日期: 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是相当低的,几乎没有价值。