カテゴリ: C# 更新日: 2026/01/07

C#のDictionary(辞書)の使い方を初心者向けに完全解説!キーと値でデータ管理を学ぼう

C#の辞書(Dictionary型)の使い方!キーと値の管理方法をわかりやすく解説
C#の辞書(Dictionary型)の使い方!キーと値の管理方法をわかりやすく解説

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

生徒

「先生!C#で、言葉と意味みたいなペアを管理したいんですけど、どうすればいいですか?」

先生

「その場合は、Dictionary(ディクショナリ)という機能を使うと便利ですよ。」

生徒

「ディクショナリ?それってどういうものなんですか?」

先生

「わかりやすく言えば、“言葉と意味のセット”を管理できる道具です。それでは、基本的な使い方を一緒に学びましょう!」

1. Dictionary(ディクショナリ)とは?

1. Dictionary(ディクショナリ)とは?
1. Dictionary(ディクショナリ)とは?

C#のDictionary(ディクショナリ)は、「キー(key)」と「値(value)」のセットをまとめて管理できる便利なデータ型です。名前と電話番号、商品コードと価格、曜日と予定など、「何かを手がかりに別の情報を取り出したい」ときにとても役立ちます。

イメージとしては、本物の辞書に近く、調べたい言葉(キー)を探すと、その意味(値)がすぐに分かる、という仕組みと同じです。C#でも、「りんご → Apple」「ねこ → Cat」のように対になったデータを扱うときに使います。

特にDictionaryは、キーを指定するだけで素早く値を取り出せるという大きな強みがあります。初心者の方でも使いやすく、実務でも幅広く使われるため、早めに慣れておくと後の学習がスムーズになります。

次の簡単な例は、「日本語 → 英語」のペアを管理する小さな辞書を作ったものです。


Dictionary<string, string> dic = new Dictionary<string, string>();
dic.Add("りんご", "Apple");
dic.Add("ねこ", "Cat");

Console.WriteLine(dic["りんご"]); // りんごの英語を取り出す

Apple

このように、キーを指定するだけで必要な値をすぐに取り出せます。Dictionaryは「名前で情報を探す」場面に非常に向いているデータ型です。

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

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

まずは、Dictionaryを使うための準備として、宣言と初期化の方法を学びましょう。以下のように書きます。


Dictionary<string, string> dic = new Dictionary<string, string>();

このコードでは、「キーが文字列」「値も文字列」のDictionaryを作っています。stringとは、文字列を表すC#の型です。

3. Dictionaryにデータを追加する方法

3. Dictionaryにデータを追加する方法
3. Dictionaryにデータを追加する方法

次に、辞書にデータを追加してみましょう。Addメソッドを使うことで、キーと値のペアを登録できます。


dic.Add("りんご", "Apple");
dic.Add("ねこ", "Cat");
dic.Add("みず", "Water");

このように、キーと値をセットで渡せば、Dictionaryに登録されます。

4. Dictionaryから値を取り出す方法

4. Dictionaryから値を取り出す方法
4. Dictionaryから値を取り出す方法

追加したデータは、キーを指定することで取り出せます。例えば「りんご」の英語を知りたいときは、次のようにします。


Console.WriteLine(dic["りんご"]);

Apple

注意: 指定したキーが存在しないと、エラーになります。エラーにならないようにするために、次の方法もあります。

5. キーが存在するか確認する方法

5. キーが存在するか確認する方法
5. キーが存在するか確認する方法

存在しないキーを指定するとエラーになるため、安全に取り出すにはContainsKeyを使います。


if (dic.ContainsKey("いぬ"))
{
    Console.WriteLine(dic["いぬ"]);
}
else
{
    Console.WriteLine("そのキーは存在しません。");
}

そのキーは存在しません。

このようにContainsKeyで事前に確認しておくと、安全にデータを扱えます。

6. Dictionaryの全てのデータを表示する方法

6. Dictionaryの全てのデータを表示する方法
6. Dictionaryの全てのデータを表示する方法

辞書の中にあるすべてのデータを表示するには、foreach(フォーイーチ)という構文を使います。


foreach (KeyValuePair<string, string> pair in dic)
{
    Console.WriteLine($"キー:{pair.Key}、値:{pair.Value}");
}

キー:りんご、値:Apple
キー:ねこ、値:Cat
キー:みず、値:Water

KeyValuePair(キー・バリューペア)とは、「キーと値のペア」という意味です。

7. 値を上書き(更新)する方法

7. 値を上書き(更新)する方法
7. 値を上書き(更新)する方法

同じキーに新しい値を入れると、古い値が更新(上書き)されます。例えば、「みず」を「Water」から「Aqua」に変える場合は次のように書きます。


dic["みず"] = "Aqua";
Console.WriteLine(dic["みず"]);

Aqua

8. Dictionaryからデータを削除する方法

8. Dictionaryからデータを削除する方法
8. Dictionaryからデータを削除する方法

登録したキーと値のセットを削除するには、Removeメソッドを使います。


dic.Remove("ねこ");

このようにすると、「ねこ → Cat」のデータが辞書から消えます。

9. Dictionaryの使い道と具体的な例

9. Dictionaryの使い道と具体的な例
9. Dictionaryの使い道と具体的な例

Dictionaryは、さまざまな場面で使えます。以下は身近な例です。

  • ユーザーのIDと名前を管理
  • 商品コードと価格を関連づける
  • 曜日と予定を記録する

例えば、月曜日の予定を登録するなら:


Dictionary<string, string> schedule = new Dictionary<string, string>();
schedule.Add("月曜日", "英語の授業");
Console.WriteLine(schedule["月曜日"]);

英語の授業

10. Dictionaryと配列やリストとの違い

10. Dictionaryと配列やリストとの違い
10. Dictionaryと配列やリストとの違い

Dictionaryは、「順番」ではなく「名前(キー)」でデータを管理する点が、配列やリストと大きく異なります。

  • 配列やリストは、番号(0番目、1番目など)でアクセス
  • Dictionaryは、名前や意味などの「キー」でアクセス

このように、何かの名前やIDで情報を管理したいときには、Dictionaryがとても便利です。

まとめ

まとめ
まとめ

C#のDictionaryは、「キーと値」のペアで情報を効率的に管理できる非常に便利なデータ構造です。この記事では、Dictionaryの宣言や初期化から始まり、データの追加、取得、更新、削除までの一連の操作方法を丁寧に解説しました。また、ContainsKeyで存在確認をする方法や、foreachを使ってすべてのデータを表示するテクニックなど、実用的なポイントも学習しました。

特に、キーで素早くアクセスできることがDictionaryの大きな特徴であり、IDや名前、コードなど意味のある識別子でデータを扱う場合には強力な味方となります。これにより、配列やリストと比べても格段に分かりやすく、ミスの少ないコーディングが可能になります。

たとえば、日々の予定を曜日ごとに管理したり、ユーザー情報をIDでひも付けたり、用語と意味を紐づけて語彙帳を作成したりといった応用が考えられます。これらはすべて、Dictionaryなら簡潔かつ柔軟に実現できます。

以下は、この記事で学んだ知識を活かして、簡単な辞書帳を作るサンプルコードです。


Dictionary<string, string> wordbook = new Dictionary<string, string>();
wordbook.Add("くるま", "Car");
wordbook.Add("そら", "Sky");
wordbook.Add("さかな", "Fish");

foreach (KeyValuePair<string, string> entry in wordbook)
{
    Console.WriteLine($"日本語:{entry.Key} → 英語:{entry.Value}");
}

日本語:くるま → 英語:Car
日本語:そら → 英語:Sky
日本語:さかな → 英語:Fish

上記のように、foreachを活用すれば、登録されたすべての言葉と意味を一覧で確認でき、非常に実用的です。エラーを避けるためには、ContainsKeyでキーの存在確認を行うことも忘れずに行いましょう。

今後、C#でアプリケーションやツールを開発していくうえで、Dictionaryの使い方をマスターしておくことは大きな武器になります。初心者のうちから繰り返し使って慣れていくことが、確実なスキルアップにつながります。

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

生徒

「先生、Dictionaryって本当に便利ですね!キーで値をすぐに取り出せるのがすごく助かります!」

先生

「そうですね。配列やリストとは違って、意味のある名前でデータを管理できるのが強みです。」

生徒

ContainsKeyを使って、キーがあるかどうか調べるのも安心ですね。これでエラーも減りそうです。」

先生

「その通り。安全性と効率性の両方を考えたコードが書けるようになりますよ。次は応用編にも挑戦してみましょう!」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

C#のDictionaryとは何ですか?初心者向けにわかりやすく教えてください。

C#のDictionaryとは、「キーと値のペア」を使ってデータを管理できる機能で、まるで日本語と英語をひもづける辞書のようなイメージです。初心者でも直感的に扱いやすく、検索や更新が高速な便利なデータ構造です。

理解度のクイズ問題

理解度のクイズ
この記事の理解度をクイズで確認しよう

空欄の★に当てはまる内容を答えてください。

問題
C#のDictionaryは、データを名前で素早く検索できるコレクションです。 データは キー の組で管理し、登録(追加)・取得・更新・削除を行います。 次のコードは、宣言と追加、存在確認を行ってから取り出す基本例です。
using System;
using System.Collections.Generic;

class Sample
{
    static void Main()
    {
        // 宣言:キーも値も文字列の辞書
        Dictionary<string, string> dic = new Dictionary<string, string>();

        // 追加(登録)
        dic.Add("apple", "りんご");
        dic.Add("cat",   "ねこ");

        // 存在確認をしてから取り出す
        if (dic.ContainsKey("apple"))
        {
            Console.WriteLine(dic["apple"]); // りんご
        }
        else
        {
            Console.WriteLine("そのキーは存在しません。");
        }
    }
}
【ヒント】 ・Dictionary=「名前で引ける」データ構造。 ・★1で探して★2を取り出すイメージ(電話帳で名前→電話番号)。 ・関連キーワード:C# コレクション、Dictionary 基礎、キーと値、データ検索、初心者向け。

下記をクリックすると、解答が表示されます
カテゴリの一覧へ
新着記事
New1
C#
C#のデフォルト引数と名前付き引数の使い方を解説!初心者でも安心のやさしい入門
New2
C#
C#のオブジェクト初期化子を完全ガイド!初心者でもわかる便利な使い方
New3
COBOL
COBOLの帳票出力と編集を完全マスター!条件付き表示で分かりやすい書類を作る方法
New4
COBOL
COBOLの帳票出力を完全攻略!数値項目のカンマ・小数点編集例を徹底解説
人気記事
No.1
Java&Spring記事人気No1
C#
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.2
Java&Spring記事人気No2
C#
C#でJSONファイルを読み書きする方法(JsonSerializer・Newtonsoft.Json)
No.3
Java&Spring記事人気No3
C#
C#でswitch式を使う方法!C# 8.0以降の新機能を解説
No.4
Java&Spring記事人気No4
C#
C#のLINQクエリ構文の書き方と基本操作をマスターしよう
No.5
Java&Spring記事人気No5
COBOL
COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
No.6
Java&Spring記事人気No6
C#
C#のLINQ(リンク)とは?基本概念とデータ操作を初心者向けに徹底解説!
No.7
Java&Spring記事人気No7
C#
C#のCancellationTokenを使ったキャンセル処理を完全ガイド!非同期処理を安全に止める方法
No.8
Java&Spring記事人気No8
C#
C#の非同期処理とUIスレッドをマスター!WPF/WinFormsでアプリが止まる問題を解決