VB.NETで辞書(Dictionary)に追加する2つの方法!

VB.NET VB.NET

VB.NETの辞書(Dictionary)に対して、キーと値を追加する方法についてです。
初期設定時にキーと値を直接設定する方法と、辞書を作った後に、下記のメソッドを使って追加する方法について解説します。

・Addメソッド
・TryAddメソッド

辞書(Dictionary)に追加する方法

辞書(Dictionary)に「キーと値」を追加するには、宣言時に辞書に値を追加したり
辞書を作った後にAddメソッドまたはTryAddメソッドを使って追加します。

宣言時に辞書に「キーと値」を設定する

辞書を作った時に「キーと値」を設定するには、下記のようにします。

  Dim fruits As New Dictionary(Of String, Integer) From {
      {"りんご", 100},
      {"バナナ", 200},
      {"みかん", 300}
  }

  For Each fruit In fruits
      Console.WriteLine("{0}は{1}円です!", fruit.Key, fruit.Value)
  Next

fruits変数に対して、新しく辞書のオブジェクトを作成して、キーと値を代入しています。
辞書の型としては、キーが文字列(String)で値が数値(Integer)になっています。

辞書オブジェクトを作るときに「From」キーワードの後の波括弧内に、「キーと値」を並べています。
これで、初期値としてfruits辞書に設定されます。
りんご」がキーで、「100」が値といった形になります。

fruits変数をFor Each文で出力すると、下記のように「キーと値」が設定されていることが確認できました。

りんごは100円です!
バナナは200円です!
みかんは300円です!

Addメソッドを使って追加する

Addメソッドを使って、辞書オブジェクトを作成した後に追加していく方法です。

Dim fruits As New Dictionary(Of String, integer)

fruits.Add("メロン", 500)
fruits.Add("もも", 300)
fruits.Add("スイカ", 600)

For Each fruit In fruits
    Console.WriteLine("{0}は{1}円です!", fruit.Key, fruit.Value)
Next

先ほどと同じように、fruits変数に辞書オブジェクトを作成しました。
次の行で、辞書オブジェクトからAddメソッドを呼び出して「キーと値」を追加しています。

Addメソッドの第1引数がキーで、第2引数が値になります。
fruits変数の辞書に対して、「キーと値」を3つ追加しました。

For Each文で出力すると、下記のように追加されていることが確認できました。

メロンは500円です!
ももは300円です!
スイカは600円です!

同じキーが被るとエラーになる

Addメソッドで追加するときに、同じキーが既に追加されている場合にはエラーになります。

Dim fruits As New Dictionary(Of String, integer)
fruits.Add("りんご", 100)
fruits.Add("バナナ", 120)
fruits.Add("りんご", 150)

りんごのキーが最初に追加されていますが、3回目のAddメソッドで、同じキーで追加しようとしています。
その場合には、下記のようにエラーが表示されます。

Unhandled exception. System.ArgumentException: An item with the same key has already been added. Key: りんご

Addメソッドで追加する時には、キーが重複しないように注意しましょう。
TryAddメソッドを使うと、同じキーの場合には無視するようになります。

TryAddメソッドを使って追加する

TryAddメソッドを使うことでも、辞書オブジェクトに対して「キーと値」を追加することが可能です。
Addメソッドと違うのは、キーが同じ場合は、後で追加しようとしているものは無視してくれます。

例えば、下記のような場合です。

Dim fruits As New Dictionary(Of String, integer)

fruits.TryAdd("りんご", 100)
fruits.TryAdd("バナナ", 150)
fruits.TryAdd("りんご", 200)
fruits.TryAdd("もも", 210)
fruits.TryAdd("バナナ", 210)

For Each fruit In fruits
    Console.WriteLine("{0}は{1}円です!", fruit.Key, fruit.Value)
Next

最初にfruits変数で辞書オブジェクトを作成しました。

次の行からTryAddメソッドを使っています。
Addメソッドと同じように、第1引数がキーで、第2引数が値です。

TryAddしている3回目のキー(りんご)と、5回目のキー(バナナ)が重複しています。
このふたつの「キーと値」は追加されません。

実行してみると、下記のように重複したキーは無視されて、追加されていることが確認できました。

りんごは100円です!
バナナは150円です!
ももは210円です!

辞書(Dictionary)に追加する方法のまとめ

今回はVB.NETの辞書に「キーと値」を追加する方法について書きました。
記事の内容をまとめると、下記のようになります。

・辞書オブジェクト作成時に初期値として「キーと値」を複数設定することができた。
・Addメソッドを使うことで、「キーと値」を辞書に追加できた。
・Addメソッドの第1引数はキー、第2引数は値になる。
・TryAddメソッドでは重複したキーの場合は無視してくれた。

コメント

タイトルとURLをコピーしました