C#の辞書(Dictionary)に対して、キーと値を追加する方法について書いています。
辞書(Dictionary)に対して、新しくキーと値を追加したい場合は、下記のどちらかのメソッドを使うことができます。
・TryAddメソッド
載せているコードについては、.Netのバージョン6(C#のバージョン10)で確認しました。
辞書(Dictionary)に追加する方法
辞書(Dictionary)にキーと値を追加するには、AddメソッドまたはTryAddメソッドを使います。
また、宣言時に追加しておく方法についても書いています。
宣言時に辞書に「キーと値」を設定する
辞書を作った時に「キーと値」を設定するには、下記のようにします。
var fruits = new Dictionary<string, int>() {{"apple", 130}, {"grape", 230}, {"peach", 330}};
foreach (var fruit in fruits) {
Console.WriteLine($"{fruit.Key}は{fruit.Value}円です。");
}
fruits
変数に対して、新しく辞書のオブジェクトを作成して代入しています。
辞書の型としては、キーが文字列で値が数値になっています。
辞書オブジェクトを作るときに「{{"apple", 130}, {"grape", 230}, {"peach", 330}}
」を指定していますが、これが初期で設定される値です。
波括弧({}
)で括った中に、さらに波括弧で「キーと値」をカンマ区切りで並べています。(“apple”がキー、130が値といった形です)
fruits
変数をforeach文で出力すると、下記のように「キーと値」が設定されていることが確認できました。
appleは130円です。
grapeは230円です。
peachは330円です。
Addメソッドを使って追加する
Addメソッドを使って、辞書オブジェクトを作成した後に追加していくこともできます。
例えば、下記のようにして辞書に追加していくことが可能です。
var fruits = new Dictionary<string, int>();
fruits.Add("apple", 100);
fruits.Add("banana", 120);
fruits.Add("grape", 150);
foreach (var fruit in fruits) {
Console.WriteLine($"{fruit.Key}は{fruit.Value}円です。");
}
先ほどと同じように、fruits
変数に対して、辞書オブジェクトを作成しました。
次の行で、辞書オブジェクトからAddメソッドを呼び出して「キーと値」を追加しています。
Addメソッドの第1引数がキーで、第2引数が値になります。
fruits
変数の辞書に対して、「キーと値」を3つ追加しました。
foreach文で出力すると、下記のように追加されていることが確認できました。
appleは100円です。
bananaは120円です。
grapeは150円です。
同じキーが被るとエラーになる
Addメソッドで追加するときに、同じキーが既に追加されている場合にはエラーになります。
例えば、下記のような場合です。
var fruits = new Dictionary<string, int>();
fruits.Add("apple", 100);
fruits.Add("banana", 120);
fruits.Add("apple", 150);
apple
のキーが最初に追加されていますが、3回目のAddメソッドで、同じキーで追加しようとしています。
その場合には、下記のようにエラーが表示されます。
Unhandled exception. System.ArgumentException: An item with the same key has already been added. Key: apple
Addメソッドで追加する時には、キーが重複しないように注意しましょう。
TryAddメソッドを使うと、同じキーの場合には無視するようになります。
TryAddメソッドを使って追加する
TryAddメソッドを使うことでも、辞書オブジェクトに対して「キーと値」を追加することが可能です。
Addメソッドと違うのは、キーが同じ場合は、後で追加しようとしているものは無視してくれます。(追加されません)
例えば、下記のような場合です。
var fruits = new Dictionary<string, int>();
fruits.TryAdd("apple", 100);
fruits.TryAdd("lemon", 135);
fruits.TryAdd("grape", 150);
fruits.TryAdd("apple", 200);
fruits.TryAdd("peach", 210);
fruits.TryAdd("grape", 210);
foreach (var fruit in fruits) {
Console.WriteLine($"{fruit.Key}は{fruit.Value}円です。");
}
最初にfruits
変数に対して、辞書オブジェクトを作成しました。
次の行からTryAddメソッドを使っています。
Addメソッドと同じように、第1引数がキーで、第2引数が値です。
TryAddしている4回目のキー(apple
)と、6回目のキー(grape
)が重複しています。
このふたつの「キーと値」は追加されません。
実行してみると、下記のように重複したキーは無視されて、追加されないことが確認できました。
appleは100円です。
lemonは135円です。
grapeは150円です。
peachは210円です。
辞書(Dictionary)に追加する方法のまとめ
今回はC#の辞書に「キーと値」を追加する方法について書きました。
記事の内容をまとめると、下記のようになります。
・Addメソッドを使うことで、「キーと値」を辞書に追加できた。
・Addメソッドの第1引数はキー、第2引数は値になる。
・TryAddメソッドも同じように使えた。重複したキーの場合は無視してくれた。
コメント