2012-07-19 18 views

答えて

63

追加 - >辞書に項目が既に存在する場合は、項目を辞書に追加します。例外がスローされます。

インデクサまたはDictionary[Key] =>を追加または更新してください。キーが辞書に存在しない場合は、新しい項目が追加されます。キーが存在する場合、値は新しい値で更新されます。


dictionary.adddictionary[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";は、辞書に新しい値を追加し、2位には、新しい値に値を変更します。

+0

とキーが 'dictionar [キーに存在しない場合] = value'? –

+0

@HenkHolterman、それは新しいキー – Habib

+0

のThaks Habibで辞書に追加されます。 dictionar [newkey] = valueという新しいキーを追加することができます。どの方がベットされた方法ですか? – rsg

0

dictionary.add辞書に項目を追加すると、dictionary[key]=valueは既存のキーに値を割り当てます。

+0

keyが存在しない場合は、keyとvalueを追加します。ので、その** **の方法を追加または更新 –

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

2

キーが辞書に存在しない場合の動作は、どちらの場合でも追加されます。

キーが既に存在する場合の動作は異なります。 dictionary[key] = valueはキーにマップされた値を更新しますが、dictionary.Add(key, value)は代わりにArgumentExceptionをスローします。

16

Addのドキュメントは、これは非常に明確で、私は感じさせる:

ます。またDictionary(Of TKey, TValue)に存在しないキーの値を設定することで、新しい要素を追加するItemプロパティを使用することができます。たとえば、myCollection[myKey] = myValue(Visual BasicではmyCollection(myKey) = myValue)です。ただし、指定したキーが既にDictionary(Of TKey, TValue)に存在する場合は、Itemプロパティを設定すると古い値が上書きされます。対照的に、Addメソッドは、指定されたキーを持つ値がすでに存在する場合に例外をスローします。

Itemプロパティがインデクサーに対応していることに注意してください。)

それは...いつも質問をする前に、ドキュメントを参考に価値がある