C# Dictionaryクラス入門

みなさんは今、

  • 配列
  • List
  • LINQ

まで学習しました。

今日はその次のステップ、

🔑 Dictionary(ディクショナリ)

について学びます。


■ Dictionaryとは?

Dictionaryとは、

「キー」と「値」をセットで管理するコレクション

です。

たとえば:

キー
“A001”“山田”
“A002”“佐藤”
“A003”“鈴木”

これはまるで辞書です。

英単語(キー)を入れると

意味(値)が出てくる。


■ なぜDictionaryが必要?

配列の場合

string[] names = { "山田", "佐藤", "鈴木" };

Console.WriteLine(names[1]);

→ 「番号」で取り出します。


Dictionaryの場合

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        Dictionary<string, string> students =
            new Dictionary<string, string>();

        students.Add("A001", "山田");
        students.Add("A002", "佐藤");
        students.Add("A003", "鈴木");

        Console.WriteLine(students["A002"]);
    }
}

→ 「意味のあるキー」で取り出せます。


■ 基本構造

Dictionary<キーの型, 値の型>

例:

Dictionary<string, int> scores;
  • string → 名前
  • int → 点数

という意味になります。


■ よく使う操作

① 追加

dict.Add("キー", 値);

② 取得

dict["キー"];

③ 存在確認(重要)

if (dict.ContainsKey("A001"))
{
    Console.WriteLine("存在します");
}

※存在しないキーを指定するとエラーになります。


■ 安全な取得方法(実務でよく使う)

if (dict.TryGetValue("A001", out string name))
{
    Console.WriteLine(name);
}
else
{
    Console.WriteLine("見つかりません");
}

これが一番安全な取り出し方です。


■ イメージ


■ 配列・Listとの違い

種類取り出し方向いている用途
配列番号固定個数
List番号増減あり
Dictionaryキー紐づけ管理

■ 注意点

同じキーは登録できません。

dict.Add("A001", "山田");
dict.Add("A001", "佐藤"); // エラー

Dictionaryは

キーが重複できない という特徴があります。


■ 今日の理解ポイント

Dictionaryは

「番号で探す」から

「意味で探す」への進化

です。

大事なのは文法よりも、

「何をキーにするのか?」

を考える力です。


■ 小さな課題

① 名前 → 点数 を管理するDictionaryを作る

② アイテム名 → 所持数 を管理するDictionaryを作る

③ TryGetValueを使って安全に取り出す


配列・Listが理解できている人は

必ず理解できます。

焦らず、1つずつ確認していきましょう。

訪問数 19 回, 今日の訪問数 19回

C#

Posted by hidepon