2013-08-25 64 views
0

我是C#的新手,但我從不明白字典末尾的()是什麼意思!字典末尾的()是什麼?

比方說,我有一個類,我宣佈這樣一個領域:

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

,然後在構造函數中,我有:

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

在到底是什麼6手段?謝謝!

+0

這是'capacity'其中用於分配的初始內存爲您'Dictionary',如果你的'Dictionary'增長比大,它會自動增加。 –

回答

4

6是初始容量。這是收藏的一個柔和指示,它會有多大,它不是任何種類的限制。

當您知道某個集合將包含一定數量的元素時,爲這些元素一次分配空間效率稍高一些。否則,該集合將使用算法來增長,但涉及複製數據。

大多數集合以capcity = 4開頭,當它填滿時,它們會增長到8,然後增加到16等。每次分配一個新的內部數組(取決於精算集合)並且現有數據必須被複制。

這意味着6是相當低的,而且幾乎不值錢。

+0

你究竟是什麼意思?庫存字段最多可容納庫存類的6個對象? – user2714359

+0

@ user2714359,該詞典儲量記憶6個條目的前期。 – CMircea

+0

@CMircea沃特瞭解釋你爲什麼會想使用此。 –

4

MSDN

詞典(的Int32)初始化字典類是空的,具有指定的初始容量的新實例,並使用該密鑰類型默認的相等比較。

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

看這個question爲什麼你想設置的初始容量。

相關問題