どうも!リョクちゃです。
今回は、前回の記事で唐突に触れてしまったdictionay型といわれる
型について例を交えながら紹介をしていきます。
ちなみに前回はこちら、
目次
dictionaryとは
Dictionary(ディクショナリー)は、いわゆる辞書ともよばれ、
VB.Netではコレクション型の一種になります。
厳密にいうと、コレクションというクラスの中にDictionaryが含まれています。
連想配列とも呼ばれます。
言語によって様々な呼ばれ方がされていますが、
VB.NetではDictionaryは連想配列と呼ばれ、取り扱われます。
連想配列は配列と違って、
“キー”と“値”を管理して扱うことができる配列のことをいいます。
dictionaryの宣言
Dictionaryを宣言するには、
と書くことで宣言ができます。
ここでは宣言と同時にNewを使ってインスタンスを作成しています。
例として、コードを下に示します。
1 |
Dim dictTest As New Dictionary( Of String, Integer) |
dictionaryへの追加
宣言されたdictionaryには空の状態になっています。
ここではdictionaryに値を追加する方法を示します。
値の追加は、
と書くことで追加ができます。
例として、コードを下に示します。
1 2 |
dictTest.Add("りんご", 150) dictTest.Add("ばなな", 270) |
例のようにキーとセットで値を追加することができます。
これでdictionaryに値を追加することができました。
キーに関連付けられる値の表示
値が追加されたdictionaryからキーを元に値を取得する場合は、
と書くことで、キーに関連付けられる値が取得できます。
例として、コードを下に示します。
1 2 3 4 |
Console.WriteLine(dictTest("りんご")) ' 出力 ' 150 |
dictionaryに追加された値の削除
dictionaryに追加された値を削除したい場合は、
と書くことで指定したキーを削除することができます。
例として、コードを下に示します。
1 2 3 4 5 6 |
Dim dictTest As New Dictionary(Of String, Integer) dictTest.Add("りんご", 150) dictTest.Add("ばなな", 270) ' バナナを削除 dictTest.Remove("ばなな") |
キーである”ばなな”を指定することで、削除をしています。
削除されたか確認する場合は、dictionary変数の要素数を取得することで確認ができます。
要素数を取得するには、
と書くことで取得ができます。
例として、コードを下に示します。
1 2 3 4 5 6 7 8 9 10 |
Dim dictTest As New Dictionary(Of String, Integer) dictTest.Add("りんご", 150) dictTest.Add("ばなな", 270) Console.WriteLine(dictTest.Count) ' 2 ' バナナを削除 dictTest.Remove("ばなな") Console.WriteLine(dictTest.Count) ' 1 |
dictionaryの値の更新
既にあるdictionaryのキーが管理する値を更新するには、
と書くことで、更新ができます。
例として、コードを下に示します。
1 2 3 4 5 6 7 8 9 |
Dim dictTest As New Dictionary(Of String, Integer) dictTest.Add("りんご", 150) dictTest.Add("ばなな", 270) Console.WriteLine(dictTest("りんご")) ' 150 dictTest("りんご") = 180 Console.WriteLine(dictTest("りんご")) ' 180 |
例のように追加した後でも値の更新が行えます。
dictionaryは繰り返し処理とセットで使う
応用例として、dictionaryに格納された値を繰り返し処理で、
順に処理をしていく例があります。
VB.Netでは繰り返し処理にはForやFor Each、Whileなどがありました。
dictionaryでは、一般的にFor Eachを使って繰り返し処理を行います。
例として、キーの数に応じて値を出力していく処理を下に示します。
1 2 3 4 5 6 7 |
Dim dictTest As New Dictionary(Of String, Integer) dictTest.Add("りんご", 150) dictTest.Add("ばなな", 270) For Each dictSample As KeyValuePair(Of String, Integer) In dictTest Console.WriteLine(dictSample.Key & " : " & dictSample.Value) Next dictSample |
例と合わせて、セットで使うと便利な方法を覚えていただければなと思います。
まとめ
今回はdictionaryについて使い方を簡単に例を交えて紹介・解説しました。
dictionaryは、使い方を覚えてしまえば非常に便利なモノになると筆者は思っています。
たとえば、RPGゲームでキャラクターのパラメータを管理するといったことに
dictionaryは使うことができます。
dictionary単体では難しいことも、組み合わせれば強力な役割を果たすこともできます。
ぜひ、使ってみてください。
ご覧いただきありがとうございます。
・こちらの書籍を参考にVB.Net勉強しています。