C#のDictionary(辞書)の使い方を初心者向けに完全解説!キーと値でデータ管理を学ぼう
生徒
「先生!C#で、言葉と意味みたいなペアを管理したいんですけど、どうすればいいですか?」
先生
「その場合は、Dictionary(ディクショナリ)という機能を使うと便利ですよ。」
生徒
「ディクショナリ?それってどういうものなんですか?」
先生
「わかりやすく言えば、“言葉と意味のセット”を管理できる道具です。それでは、基本的な使い方を一緒に学びましょう!」
1. Dictionary(ディクショナリ)とは?
C#のDictionary(ディクショナリ)は、「キー(key)」と「値(value)」のセットでデータを管理するための型です。まるで、言葉とその意味をセットで管理する辞書のようなものと考えると理解しやすいです。
例えば「りんご → Apple」「ねこ → Cat」のように、日本語をキー、英語を値として登録できます。
このDictionaryは、キーを使って、すばやく値を取り出せるのが大きな特徴です。
2. Dictionaryの宣言と初期化の方法
まずは、Dictionaryを使うための準備として、宣言と初期化の方法を学びましょう。以下のように書きます。
Dictionary<string, string> dic = new Dictionary<string, string>();
このコードでは、「キーが文字列」「値も文字列」のDictionaryを作っています。stringとは、文字列を表すC#の型です。
3. Dictionaryにデータを追加する方法
次に、辞書にデータを追加してみましょう。Addメソッドを使うことで、キーと値のペアを登録できます。
dic.Add("りんご", "Apple");
dic.Add("ねこ", "Cat");
dic.Add("みず", "Water");
このように、キーと値をセットで渡せば、Dictionaryに登録されます。
4. Dictionaryから値を取り出す方法
追加したデータは、キーを指定することで取り出せます。例えば「りんご」の英語を知りたいときは、次のようにします。
Console.WriteLine(dic["りんご"]);
Apple
注意: 指定したキーが存在しないと、エラーになります。エラーにならないようにするために、次の方法もあります。
5. キーが存在するか確認する方法
存在しないキーを指定するとエラーになるため、安全に取り出すにはContainsKeyを使います。
if (dic.ContainsKey("いぬ"))
{
Console.WriteLine(dic["いぬ"]);
}
else
{
Console.WriteLine("そのキーは存在しません。");
}
そのキーは存在しません。
このようにContainsKeyで事前に確認しておくと、安全にデータを扱えます。
6. Dictionaryの全てのデータを表示する方法
辞書の中にあるすべてのデータを表示するには、foreach(フォーイーチ)という構文を使います。
foreach (KeyValuePair<string, string> pair in dic)
{
Console.WriteLine($"キー:{pair.Key}、値:{pair.Value}");
}
キー:りんご、値:Apple
キー:ねこ、値:Cat
キー:みず、値:Water
KeyValuePair(キー・バリューペア)とは、「キーと値のペア」という意味です。
7. 値を上書き(更新)する方法
同じキーに新しい値を入れると、古い値が更新(上書き)されます。例えば、「みず」を「Water」から「Aqua」に変える場合は次のように書きます。
dic["みず"] = "Aqua";
Console.WriteLine(dic["みず"]);
Aqua
8. Dictionaryからデータを削除する方法
登録したキーと値のセットを削除するには、Removeメソッドを使います。
dic.Remove("ねこ");
このようにすると、「ねこ → Cat」のデータが辞書から消えます。
9. Dictionaryの使い道と具体的な例
Dictionaryは、さまざまな場面で使えます。以下は身近な例です。
- ユーザーのIDと名前を管理
- 商品コードと価格を関連づける
- 曜日と予定を記録する
例えば、月曜日の予定を登録するなら:
Dictionary<string, string> schedule = new Dictionary<string, string>();
schedule.Add("月曜日", "英語の授業");
Console.WriteLine(schedule["月曜日"]);
英語の授業
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を使って、キーがあるかどうか調べるのも安心ですね。これでエラーも減りそうです。」
先生
「その通り。安全性と効率性の両方を考えたコードが書けるようになりますよ。次は応用編にも挑戦してみましょう!」
理解度のクイズ問題
空欄の★に当てはまる内容を答えてください。
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 基礎、キーと値、データ検索、初心者向け。