我是C#的新手,但我从未理解字典末尾的()是什么意思!
假设我有一个班级,我宣布一个这样的字段:
public Dictionary<InventoryType, Inventory> Inventory { get; private set; }
然后,在构造函数上,我有:
Inventory = new Dictionary<InventoryType, Inventory>(6);
最后的6是什么意思?谢谢!
答案 0 :(得分:4)
6
是初始容量。这是一个柔和的指示,它将有多大,它不是任何限制。
当您知道某个集合将包含一定数量的元素时,一次为这些元素分配空间会稍微高效一些。否则,集合将使用算法来增长,但这涉及复制数据。
大多数集合以capcity = 4开头,当填充时,它们会增长到8,然后变为16等。每次分配新的内部数组(取决于精算集合)并且必须复制现有数据。
这意味着6相当低,几乎不值得。
答案 1 :(得分:4)