2012-07-19 93 views

回答

63

Add - >如果項目已經存在於字典中,則會向該字典中添加一個項目將引發異常。

索引器或Dictionary[Key] =>添加或更新。如果字典中不存在該鍵,則會添加一個新項目。如果該鍵存在,則該值將用新值更新。


dictionary.add將新項目添加到字典中,dictionary[key]=value將一個值設置爲在字典中對關鍵的現有條目。如果密鑰不存在,則(索引器)將在詞典中添加該項目。

Dictionary<string, string> dict = new Dictionary<string, string>(); 
dict.Add("Test", "Value1"); 
dict["OtherKey"] = "Value2"; //Adds a new element in dictionary 
Console.Write(dict["OtherKey"]); 
dict["OtherKey"] = "New Value"; // Modify the value of existing element to new value 
Console.Write(dict["OtherKey"]); 

在上面的例子中,排在首位dict["OtherKey"] = "Value2";將在字典中添加一個新的價值,因爲它不存在,而排在第二位,將值修改爲新值。

+0

而當鑰匙不在'dictionar存在[關鍵] =值'? – 2012-07-19 09:07:01

+0

@HenkHolterman,它將在字典中添加新的密鑰 – Habib 2012-07-19 09:08:34

+0

Thaks Habib。但我們可以通過dictionar [newkey] = value添加新的密鑰。哪一個是最好的方式? – rsg 2012-07-19 09:09:43

0

dictionary.add將項目添加到字典中,而dictionary[key]=value將值分配給已存在的鍵。

+0

'dictionary [key] = value'在密鑰不存在的情況下添加密鑰和值。所以它的**添加或更新**的方式 – 2017-08-05 07:04:00

25

Dictionary.Add如果密鑰已存在,則會引發異常。 []用於設置項目時不會(如果您嘗試訪問它以進行讀取,則會出現此問題)。

x.Add(key, value); // will throw if key already exists or key is null 
x[key] = value; // will throw only if key is null 
var y = x[key]; // will throw if key doesn't exists or key is null 
+0

謝謝Xanatos。 – rsg 2012-07-19 09:13:48

2

當詞典中不存在該鍵時,該行爲是相同的:該項目將在兩種情況下都被添加。

當密鑰已存在時,行爲會有所不同。 dictionary[key] = value將更新映射到該鍵的值,而dictionary.Add(key, value)將會拋出一個ArgumentException。

16

Add文檔使這很清楚,我的感受:

您也可以使用Item屬性設置不中Dictionary(Of TKey, TValue)存在的鍵值添加新元素;例如,myCollection[myKey] = myValue(在Visual Basic中,myCollection(myKey) = myValue)。但是,如果指定的鍵已存在於Dictionary(Of TKey, TValue)中,則設置Item屬性會覆蓋舊值。相反,如果具有指定鍵的值已存在,則Add方法將引發異常。

(注意Item屬性對應於索引。)

它總是值得一問的一個問題之前,諮詢文件...