カテゴリ: VB.NET 更新日: 2025/12/12

VB.NETのDictionary(Of TKey, TValue)入門!初心者でもわかる辞書型の使い方と活用例

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

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

生徒

「先生、VB.NETでリストや配列以外にデータを管理する便利な方法ってありますか?」

先生

「もちろんありますよ。その一つがDictionary(Of TKey, TValue)、つまり辞書型です。キーと値をセットにしてデータを管理できるので、探したい情報をすぐに取り出せます。」

生徒

「キーと値って何ですか?リストとはどう違うんですか?」

先生

「リストは順番でデータを管理しますが、辞書型は名前を付けて管理できるのが特徴です。例えば、学生番号をキーにして名前を保存する、といった使い方ができますよ。」

1. Dictionary(Of TKey, TValue)とは?

1. Dictionary(Of TKey, TValue)とは?
1. Dictionary(Of TKey, TValue)とは?

VB.NETのDictionary(Of TKey, TValue)は、データを「キー」と「値」のペアで管理するコレクションです。「キー」はデータを探すための目印、「値」は実際のデータ本体です。

例えば学校の名簿を考えてみましょう。学籍番号をキーにして、学生の名前を値として保存すれば、「学籍番号1001の学生は誰?」と簡単に調べられるのです。

配列やリストは「順番」で管理するのに対し、辞書型は「名前付き」で管理できるため、検索がとても速く効率的です。

2. Dictionaryの基本的な宣言

2. Dictionaryの基本的な宣言
2. Dictionaryの基本的な宣言

辞書型を使うには、キーと値の型を指定して宣言します。


Dim students As New Dictionary(Of Integer, String)()

この例では「キーは整数型」「値は文字列型」という意味です。つまり「学籍番号(整数)をキーにして、名前(文字列)を値にする」辞書になります。

3. データの追加

3. データの追加
3. データの追加

辞書にデータを追加するには、Addメソッドを使います。


students.Add(1001, "田中")
students.Add(1002, "佐藤")
students.Add(1003, "鈴木")

このように、学籍番号をキーにして、それに対応する名前を登録できます。もし同じキーを2回追加しようとするとエラーになります。キーは一意(ユニーク)でなければならないためです。

4. データの取り出し

4. データの取り出し
4. データの取り出し

キーを指定すると、そのキーに対応する値を取り出せます。


Console.WriteLine(students(1001)) ' 出力: 田中
Console.WriteLine(students(1002)) ' 出力: 佐藤

このように、学籍番号を指定するだけで、すぐに名前を取得できます。リストのようにインデックス番号を気にする必要はありません。

5. データの削除

5. データの削除
5. データの削除

不要になったデータは、Removeメソッドで削除できます。


students.Remove(1002)

これで、学籍番号1002に対応するデータが削除されます。

6. データの存在確認

6. データの存在確認
6. データの存在確認

あるキーが存在するかどうかを確認したいときは、ContainsKeyを使います。


If students.ContainsKey(1003) Then
    Console.WriteLine("学籍番号1003は登録されています")
End If

逆に、値の存在を調べたい場合はContainsValueを使います。

7. すべてのデータを繰り返し処理

7. すべてのデータを繰り返し処理
7. すべてのデータを繰り返し処理

辞書に保存されたすべてのキーと値を取り出すには、For Eachを使います。


For Each pair As KeyValuePair(Of Integer, String) In students
    Console.WriteLine("学籍番号:" & pair.Key & " 名前:" & pair.Value)
Next

実行結果は次のようになります。


学籍番号:1001 名前:田中
学籍番号:1003 名前:鈴木

8. 辞書型の便利な使い道

8. 辞書型の便利な使い道
8. 辞書型の便利な使い道

辞書型は日常生活のいろいろな場面をプログラムに取り込むときに役立ちます。

  • 社員番号と社員名を対応させる
  • 商品コードと価格を対応させる
  • 郵便番号と住所を対応させる

例えば商品コードと価格を管理する辞書を作れば、「商品コード1234の価格はいくら?」とすぐに調べられます。検索や照合がとても速いので、データが多くても効率的に扱えます。

9. 配列・リストと辞書型の違い

9. 配列・リストと辞書型の違い
9. 配列・リストと辞書型の違い

最後に、配列・リスト・辞書型の違いを整理しておきましょう。

項目 配列 リスト 辞書型
データの管理方法 順番で管理 順番で管理 キーと値で管理
サイズ 固定 可変 可変
検索方法 インデックス番号 インデックス番号 キーを指定して検索
特徴 シンプルで軽量 柔軟で便利 検索や対応付けに最適

このように、辞書型は「データを名前付きで管理したい」「特定の情報をすぐに検索したい」といった場面でとても便利です。

まとめ

まとめ
まとめ

VB.NETのDictionary(Of TKey, TValue)は、データをキーと値の組み合わせで効率よく管理できる強力なコレクションであり、順番ではなく名前で探すという日常的な発想をそのままプログラムに落とし込める点が大きな魅力です。学籍番号と名前、商品コードと価格、社員番号と氏名など、さまざまな場面でデータを素早く検索したいときに辞書型は非常に便利で、リストや配列では実現しづらい「目印で検索する」という操作が自然に行えるようになります。今回の記事では、辞書型の初期化方法、データの追加、削除、検索、存在確認、繰り返し処理といった基本機能をひとつずつ確認しながら、辞書型の仕組みと活用方法をわかりやすく整理しました。 さらに辞書型では、キーが一意であるという性質が検索効率の向上に直結しており、大量のデータが存在する場合でも、必要な情報を瞬時に取り出せるという点が他のコレクションに比べて大きな利点となります。たとえば、店舗の商品情報を辞書型で管理しておけば、「商品コードから価格を取り出す」といった処理を高速に行うことができ、実務的なアプリケーションでも多く使われています。一方でキーが重複するとエラーになる、順序が保証されないといった特徴もあるため、データの性質を理解した上で使い分けることが重要です。 ここでは、辞書型の実際の使い方を振り返るため、記事と同じような形式の簡易的なサンプルコードを掲載します。辞書型の動作イメージがよりつかめるはずです。


Dim items As New Dictionary(Of String, Integer)()

items.Add("りんご", 120)
items.Add("みかん", 80)
items.Add("ぶどう", 300)

Console.WriteLine("りんごの価格は " & items("りんご") & " 円です")

If items.ContainsKey("みかん") Then
    Console.WriteLine("みかんは登録されています")
End If

For Each data As KeyValuePair(Of String, Integer) In items
    Console.WriteLine("商品名:" & data.Key & " 価格:" & data.Value)
Next

このサンプルでは、果物名をキー、価格を値として登録し、検索・存在確認・繰り返し処理まで一連の流れを実践しています。辞書型を使うことで、名前を指定して価格を調べたり、全データを一覧表示したりといった操作が短いコードで実現できるため、業務アプリケーションやデータ管理システムでも頻繁に採用されるデータ構造です。また、配列やリストではインデックス番号でアクセスする必要がありますが、辞書型では意味のある名前を使ってアクセスできるため、コードの可読性や保守性が高まります。 辞書型は、データ量が増えても検索速度が落ちにくいという点でも優れており、大量データを扱う場面でも安心して使用できます。データの追加や削除も簡単で、実行中に柔軟にデータ構造を変化させたい場合にも向いています。今回の記事で、辞書型が配列やリストとは異なる視点からデータを管理できること、そしてキーと値で構造的に整理されたデータを扱えることが理解できたはずです。まずは身近な「対応関係」を辞書型で表現する練習をしてみると、より直感的にその便利さを実感できるでしょう。

先生と生徒の振り返り会話

生徒

「辞書型ってキーで検索できるから、リストよりずっと便利な場面が多いですね。名前でデータを取り出せるのが、とても使いやすいと思いました!」

先生

「そうですね。辞書型は特定の情報を素早く探したいときに最適です。学籍番号、商品コード、社員番号など、現実の物事をそのまま表現できるのが強みです。」

生徒

「ContainsKeyやRemoveも便利で、データの管理がしやすいんだなと感じました。For Eachで全部のデータを取り出せるのも良いですね。」

先生

「まさにその通りです。辞書型を使いこなせると、VB.NETで扱えるデータ構造の幅が大きく広がります。用途に合わせて配列・リスト・辞書型を選べるようになると、さらに実践的なプログラムが組めるようになりますよ。」

生徒

「もっといろいろなデータを辞書型で管理してみたいです!商品情報や生徒名簿みたいな仕組みを作る練習もしてみます。」

先生

「ぜひ挑戦してみてください。辞書型は実務でもとてもよく使われるので、身につけておくと役に立ちますよ。」

カテゴリの一覧へ
新着記事
New1
ASP.NET
ASP.NET WebFormsのGridViewでデータ表示を完全マスター!初心者向けガイド
New2
VB.NET
VB.NETの例外処理とパフォーマンスの関係を初心者向けに完全解説
New3
ASP.NET
ASP.NET WebFormsでデータベースと連携!初心者でもできる保存と表示の基本
New4
VB.NET
VB.NETでStackTraceを利用してエラー箇所を特定する方法を完全解説!初心者向け例外処理入門
人気記事
No.1
Java&Spring記事人気No1
VB.NET
VB.NETのEnum(列挙型)の使い方を完全解説!初心者にも分かる定義と活用方法
No.2
Java&Spring記事人気No2
VB.NET
VB.NETのIf文の使い方と条件分岐を完全ガイド!初心者でもわかる基本構文と実例
No.3
Java&Spring記事人気No3
VB.NET
VB.NETのBoolean型(True/False)の使い方と条件分岐での活用方法を徹底解説!初心者でも理解できる基本
No.4
Java&Spring記事人気No4
VB.NET
VB.NETの配列(Array)の作り方と基本操作を徹底解説!初心者でもわかる入門ガイド
No.5
Java&Spring記事人気No5
VB.NET
VB.NETの例外処理を完全ガイド!初心者でもわかるSystem.Exceptionの仕組み
No.6
Java&Spring記事人気No6
VB.NET
VB.NETプログラムの実行方法まとめ!Visual Studio・コマンドラインの使い方
No.7
Java&Spring記事人気No7
VB.NET
VB.NETのコンストラクタと初期化処理の書き方を初心者向けに解説
No.8
Java&Spring記事人気No8
VB.NET
VB.NETでの変数名の付け方とは?わかりやすくエラーの起きにくい命名規則を紹介