カテゴリ: VB.NET 更新日: 2026/01/26

VB.NETのDictionaryを完全ガイド!初心者でもわかる辞書の基本と応用

VB.NETの辞書(Dictionary(Of TKey, TValue))の基本と応用
VB.NETの辞書(Dictionary(Of TKey, TValue))の基本と応用

先生と生徒の会話形式で理解しよう

生徒

「VB.NETで、たくさんのデータを『名前』で管理する方法はありますか?」

先生

「それなら『Dictionary(ディクショナリ)』というクラスを使うのが一番ですよ。」

生徒

「ディクショナリ…辞書という意味ですよね。具体的にはどのように使うんですか?」

先生

「現実の辞書と同じように、見出し語(キー)と意味(値)をセットにしてデータを保存します。それでは、基本的な使い方を見ていきましょう!」

1. Dictionary(辞書)とは?

1. Dictionary(辞書)とは?
1. Dictionary(辞書)とは?

VB.NETのDictionary(ディクショナリ)とは、大量のデータを効率よく管理するための「コレクション」の一種です。最大の特徴は、「キー(Key)」「値(Value)」をペアにして保存する点にあります。

例えば、国語辞典を想像してみてください。調べたい「単語」がキーであり、その横に書いてある「意味」が値です。通常の「配列」や「List」では、データが何番目にあるかという「番号」で管理していましたが、Dictionaryを使えば「名前」や「ID」といった独自の目印でデータを一瞬で取り出すことができるようになります。プログラミングにおいて、特定の情報を素早く検索したいときに非常に便利な仕組みです。

2. Dictionaryの宣言と初期化

2. Dictionaryの宣言と初期化
2. Dictionaryの宣言と初期化

Dictionaryを使うためには、まず「この辞書にはどんな種類のキーと値を入れますか?」とパソコンに教えてあげる必要があります。これを宣言と呼びます。

VB.NETでは (Of TKey, TValue) という書き方を使います。例えば、出席番号(整数型:Integer)と名前(文字列型:String)をセットにする場合は以下のように書きます。パソコンを触ったことがない方でも、この「型の指定」をしっかり行うことで、間違いのない頑丈なプログラムを作ることができます。


' 辞書を作る準備(宣言と生成)
Dim members As New Dictionary(Of Integer, String)()

' データの追加
members.Add(1, "田中さん")
members.Add(2, "鈴木さん")
members.Add(3, "佐藤さん")

' 中身を表示してみる
Console.WriteLine("出席番号1番は " & members(1) & " です")

出席番号1番は 田中さん です

3. データの追加と取り出し方

3. データの追加と取り出し方
3. データの追加と取り出し方

Dictionaryにデータを追加する方法は、先ほど紹介した Add メソッドの他にもあります。もう一つの方法は、配列のようにカッコを使って直接代入する方法です。これを活用すると、すでにあるデータを上書きすることも可能です。

また、データを取り出すときはキーを指定するだけです。もし存在しないキーを指定してしまうとエラーが発生してプログラムが止まってしまうため、注意が必要です。実際の開発では、安全に取り出すための工夫も行いますが、まずは基本の書き方をマスターしましょう。メソッドとは、特定の機能を持った命令の塊のことです。


Dim colors As New Dictionary(Of String, String)()

' キーを色の名前にして、値を日本語名にする
colors("Red") = "赤色"
colors("Blue") = "青色"
colors("Green") = "緑色"

' 特定のキーを使って値を取り出す
Dim myColor As String = colors("Blue")
Console.WriteLine("Blueの日本語は " & myColor)

Blueの日本語は 青色

4. キーが存在するか確認する(ContainsKey)

4. キーが存在するか確認する(ContainsKey)
4. キーが存在するか確認する(ContainsKey)

Dictionaryからデータを取り出す前に、「その合言葉(キー)は辞書に登録されているかな?」と確認することはとても大切です。これを怠ると、プログラムが突然終了してしまう原因になります。

そこで使うのが ContainsKey という命令です。この命令を使うと、指定したキーがある場合は「True(真)」、ない場合は「False(偽)」という結果が返ってきます。これを制御構造(if文)と組み合わせることで、エラーのない安全なシステムを作ることができるようになります。実務のプログラミングでは、この確認作業が欠かせません。


Dim prices As New Dictionary(Of String, Integer)()
prices.Add("りんご", 150)
prices.Add("バナナ", 100)

Dim target As String = "メロン"

' キーが存在するかどうかで処理を分ける
If prices.ContainsKey(target) Then
    Console.WriteLine(target & "の価格は " & prices(target) & " 円です")
Else
    Console.WriteLine(target & "は登録されていません")
End If

メロンは登録されていません

5. データの削除と全消去

5. データの削除と全消去
5. データの削除と全消去

辞書に登録したデータが不要になったときは、Remove メソッドを使って削除できます。特定のキーを指定するだけで、そのペアを丸ごと消し去ることができます。また、辞書の中身をすべて空にしたいときは Clear メソッドを使います。

削除の際も、存在しないキーを消そうとしてもエラーにはなりませんが、プログラムの意図を明確にするために丁寧な操作を心がけましょう。パソコン内部のメモリ(データを一時的に置いておく場所)を節約するためにも、不要になった大きなデータは適切に削除することが推奨されます。

6. For Eachを使ったすべてのデータの読み取り

6. For Eachを使ったすべてのデータの読み取り
6. For Eachを使ったすべてのデータの読み取り

辞書の中に入っているすべてのデータを順番に表示したり、加工したりしたいときは、繰り返し処理(For Each)を使います。Dictionaryの中身をループさせると、一つのペアが KeyValuePair という特別な型として取り出されます。

この KeyValuePair には、Key プロパティと Value プロパティがあり、それぞれの値を別々に取得できます。例えば、商品の一覧を表示したり、合計金額を計算したりする場面で非常に役立ちます。一気にたくさんのデータを扱うことができる、非常に強力な機能です。


Dim inventory As New Dictionary(Of String, Integer)()
inventory.Add("ノートPC", 5)
inventory.Add("マウス", 20)
inventory.Add("キーボード", 12)

' 辞書の全データを順番に処理する
For Each pair As KeyValuePair(Of String, Integer) In inventory
    Console.WriteLine("商品名: " & pair.Key & " / 在庫数: " & pair.Value)
Next

商品名: ノートPC / 在庫数: 5
商品名: マウス / 在庫数: 20
商品名: キーボード / 在庫数: 12

7. Dictionaryを使うメリットと注意点

7. Dictionaryを使うメリットと注意点
7. Dictionaryを使うメリットと注意点

最後に、Dictionaryを使うときの重要なポイントをまとめます。配列やListとの最大の違いは、データの取り出し速度です。数万件、数十万件という膨大なデータの中から、たった一つの情報を探すとき、Dictionaryは「キー」という目印があるおかげで、一瞬で目的の場所にたどり着くことができます。

ただし、一つだけ絶対に守らなければならないルールがあります。それは、「キーは重複してはいけない」ということです。同じ名前の見出しが二つあると、どちらの意味を見ればいいか分からなくなってしまいますよね。このルールを意識しながら、便利なDictionaryを使いこなして、より高度なプログラム制作に挑戦してみてください。

カテゴリの一覧へ
新着記事
New1
ASP.NET
ASP.NET Blazor入門!C#で作る最新のWebアプリ開発
New2
VB.NET
VB.NETのStack(スタック)を完全解説!LIFO処理の基本と使い方
New3
VB.NET
VB.NETのキュー(Queue)を完全解説!初心者でもわかるFIFO処理と使い方
New4
VB.NET
VB.NETのNullable型を徹底解説!初心者でもわかる使い方と注意点
人気記事
No.1
Java&Spring記事人気No1
VB.NET
VB.NETの配列(Array)を完全マスター!初心者でも基礎からわかる宣言・初期化ガイド
No.2
Java&Spring記事人気No2
ASP.NET
ASP.NET Coreを.NET CLIで作成する方法を完全解説!初心者でも迷わないコマンド操作入門
No.3
Java&Spring記事人気No3
VB.NET
VB.NETの例外処理で初心者がつまずくポイントと解決策!エラー対策を完全攻略
No.4
Java&Spring記事人気No4
VB.NET
VB.NETのコーディング規約を完全解説!初心者でもわかる読みやすいコードの基本ルール
No.5
Java&Spring記事人気No5
ASP.NET
Razor Pagesとは?MVCとの違いをやさしく理解しよう【ASP.NET初心者向け】
No.6
Java&Spring記事人気No6
VB.NET
VB.NETでアプリケーション全体の例外をキャッチする方法を完全ガイド
No.7
Java&Spring記事人気No7
VB.NET
VB.NETのDictionaryを完全ガイド!初心者でもわかる辞書の基本と応用
No.8
Java&Spring記事人気No8
VB.NET
VB.NETのList(Of T)の使い方を完全ガイド!初心者が最初に覚えるべきリスト操作