Dictionary.Add
メソッドとインデクサーの違いは何Dictionary[key] = value
ですか?
5 に答える
追加-> 項目がディクショナリに既に存在する場合、ディクショナリに項目を追加し、例外がスローされます。
インデクサーまたはDictionary[Key]
=> Add または Update。キーがディクショナリに存在しない場合は、新しい項目が追加されます。キーが存在する場合、値は新しい値で更新されます。
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";
に辞書に新しい値が存在しないため追加し、2 番目に値を新しい値に変更します。
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
のドキュメントAdd
はこれを非常に明確にしています。
Item
に存在しないキーの値を設定することにより、プロパティを使用して新しい要素を追加することもできDictionary(Of TKey, TValue)
ます。たとえば、myCollection[myKey] = myValue
(Visual Basic ではmyCollection(myKey) = myValue
)。ただし、指定したキーが に既に存在する場合Dictionary(Of TKey, TValue)
、Item プロパティを設定すると古い値が上書きされます。対照的に、Add
指定されたキーを持つ値が既に存在する場合、メソッドは例外をスローします。
Item
(プロパティはインデクサーに対応することに注意してください。)
キーがディクショナリに存在しない場合の動作は同じです。どちらの場合もアイテムが追加されます。
キーがすでに存在する場合、動作は異なります。 dictionary[key] = value
キーにマップされた値を更新しますが、dictionary.Add(key, value)
代わりに ArgumentException をスローします。
dictionary.add
ディクショナリに項目を追加し、dictionary[key]=value
既存のキーに値を割り当てます。