.net column

.NET開発者のためのブログメディア

【VB.NET入門】Dictionaryとは?仕組みや使い方を徹底解説

2019年12月22日

「VB.NETの連想配列(dictionary)って、どんな時に使うんだろう……」
「VB.NETの連想配列(dictionary)の基礎的な使い方や、応用テクニックがあれば知りたいな……」

と思っていませんか?

VB.NETで配列を使ったことがあっても、連想配列(dictionary)を使ったことがないという人もいるのではないでしょうか。配列だけでも便利ですが、連想配列(dictionary)を使いこなすとよりコードが組みやすくなるので、覚えておくと便利です。

そこで今回は、VB.NETのDictionaryの使い方・仕組み・サンプルコードを解説します。

SE
VB.NETの連想配列(dictionary)を詳しく知りたい!
PM
VB.NETの連想配列(dictionary)は使いこなすととても便利なので、ぜひ覚えましょう!

※この記事は、Visual Basicの16.0で動作確認しました。

VB.NETの連想配列(Dictionary)って何?

まず、VB.NETの連想配列(dictionary)について解説します。連想配列(dictionary)は、以下のように「キー」と「値」をセットにして管理できる配列のことです。

連想配列名(キー1)のように書くと、値1の値を利用できます。このように、キーごとに値を管理できます。

ただ、使い方のイメージがよくわからない人も多いのではないでしょうか。そこで次に、具体的な使い方を解説します。

VB.NETの連想配列(Dictionary)の使い方

ここからは、VB.NETの連想配列(Dictionary)の使い方について、以下に分けて解説します。

1.宣言
2.項目の追加
3.項目の削除
4.値の取得
5.値の更新

使い方 + サンプルコードに分けて解説するので、ぜひ参考にしてみてくださいね。

1.宣言

1つ目は、「宣言」です。配列同様、連想配列を使う時も以下のように宣言が必要です。

サンプルでは、dicSampleという名前で連想配列を用意し、キーの型を数値型(Integer)、値の型を(String)で設定しています。

使い方の基本となるので、覚えておきましょう。

2.項目の追加

2つ目が、「項目の追加」です。連想配列を宣言したら、「キー」「値」のセットを追加しましょう。

項目を追加したいときは、Addメソッドを使います。追加方法は、以下のとおりです。

実行結果:

「dicSample.Add(キー,値)」で、項目を追加しています。このように、キーとセットで値を追加できます。

3.項目の削除

3つ目は、「項目の削除」です。追加した項目を削除したいケースは、よくあります。

項目を削除したいときは、Removeメソッドを使います。使い方は、以下のとおりです。

実行結果:

キーが「2」の値を削除し、ログに出力した要素数が2になっていますよね。このように、簡単に項目を削除できます。

4.値の取得

4つ目は、「値の取得」です。セットした値を使って処理を作るのは、基本です。使い方を覚えておきましょう。

使い方は以下のとおりです。

実行結果:

追加した値が、dicSample(要素番号)で簡単に取得できていますよね。このように、追加した値が利用しやすいのも連想配列(Dictionary)の魅力ですね。

5.値の更新

5つ目は、「値の更新」です。連想配列に追加した値のみ変更したいケースは、よくあります。

値の更新方法は、以下のとおりです。

実行結果:

キーが「1」の値が、「テスト1」から「変更した値」に変わっていますよね。このように、追加後でも値は変更できます。

VB.NETの連想配列(Dictionary)のサンプルコード

ここまで、1つずつ使い方 + サンプルコードを解説してきました。ただ、実際に使う時は、組み合わせて使うことの方が多いです。

サンプルコードをもとに、解説しますね。

実行結果:

今回はキー、値ともに文字列型(String)で指定し、値の追加 + 値のログ出力をしています。宣言、値の追加、値の取得(出力)が基本なので、使い方を覚えておきましょう。

VB.NETの連想配列(Dictionary)を使う時によくある2つの質問

ここからは、VB.NETの連想配列(Dictionary)を使う時によくある、以下2つの質問について解説します。

1. どんな時に使うのがおすすめ?
2. セットで覚えると便利な構文はある?

1つずつ詳しく解説しますね。

1.どんな時に使うのがおすすめ?

「連想配列って確かに便利だけど、具体的にどんな時に使うの?」と思った方もいるのではないでしょうか。

おすすめは、以下のようなときです。

・同じグループとして1セットで扱いたいとき
・ただ値を入れるだけでなく値に意味を持たせたいとき

先ほど解説したサンプルでは、キーを「name」や「age」にしていました。キー名を見るだけで、名前(name)、年齢(age)であることがすぐにわかりますよね。

これがただの配列の場合は、配列名(要素番号)の指定となるので、パッと見たときに何を利用しているのかわかりづらいです。配列数が少ない場合は良いかもしれませんが、データが多くなってくると扱いにくくなるので、連想配列(Distionary)を使うほうがいいでしょう。

2.セットで覚えると便利な構文はある?

連想配列はとても便利ですが、「要素数で指定しない分、ループ処理を作るときが少し厄介」です。全てのデータを利用したいとき、キーを手打ちで入力するのは効率が悪いですよね。

そんな時に備えて、For Each文の使い方を覚えておきましょう。For Each文を使って以下のように書くと、キーの数に応じて値を全て出力できます。

実行結果:

For Each文の使い方は以下のとおりです。

ポイントは、型名にKeyValuePair(構造体)を指定している点です。Dictionaryを直接指定してもエラーとなってしまうので、注意しましょう。

ちなみにこのサンプルは、「VB.NETの連想配列(Dictionary)のサンプルコード」で解説したサンプルと、実行結果が同じです。ただ、For Each文を使った場合は、連想配列の項目数に合わせて結果を出力できます。

「配列の数分ループ処理するケース」はよくあるので、覚えておくと良いかもしれませんね。

VB.NETの配列の使い方については、以下で詳しく解説しています。基礎を振り返りたい方は、ぜひ参考にしてみてくださいね。

>>> 【VB.NET入門】配列の使い方全まとめ!基礎だけでなく応用も

まとめ

今回は、VB.NETの連想配列(Dictionary)の使い方・仕組み・サンプルコードを解説しました。

連想配列は、1つにデータをまとめて扱いたいときにとても便利です。使いどころが多いので、覚えておくと良いでしょう。

簡単なところからでいいので、ぜひ使ってみてくださいね!


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

求人一覧

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)