【C#】ディクショナリ(Dictionary)の使い方

C#

ディクショナリは、キーと値のペアをセットで記憶するデータ構造です。

ディクショナリで実現できる例としては、電話帳があります。人の名前(キー)とその電話番号(値)を紐づけて保存します。名前を知っていれば、ディクショナリを使って対応する電話番号をすぐに探せます。

サンプルコード

以下は人の名前(キー)とメールアドレスを記憶するアドレスブックの例です。

using System;
using System.Collections.Generic;

namespace DictionaryExample
{
    class Program
    {
        static void Main(string[] args)
        {
            // ディクショナリの初期化
            Dictionary<string, string> emailDic = new Dictionary<string, string>();

            // 要素の追加
            emailDic.Add("yamada", "yamada@example.com");
            emailDic.Add("tanaka", "tanaka@example.com");

            // 要素のアクセス
            string email = emailDic["yamada"];
            Console.WriteLine(email); // 出力: yamada@example.com

            // 要素の存在チェック
            if (emailDic.ContainsKey("suzuki"))
            {
                Console.WriteLine(emailDic["suzuki"]);
            }
            else
            {
                Console.WriteLine("キーが存在しません。");
            }

            // 要素の削除
            emailDic.Remove("tanaka");

            // ディクショナリのループ処理
            foreach (KeyValuePair<string, string> pair in emailDic)
            {
                Console.WriteLine($"Key: {pair.Key}, Value: {pair.Value}");
            }
        }
    }
}

各部の解説

ディクショナリの宣言

例えば、文字列のキーと値を持つディクショナリは以下のように作成できます。

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

要素の追加とアクセス

ディクショナリに要素を追加するには、Addメソッドを使用します。

emailDic.Add("yamada", "yamada@example.com");
emailDic.Add("tanaka", "tanaka@example.com");

ディクショナリから値にアクセスするには、キーを使います。

string email = emailDic["yamada"];
Console.WriteLine(email); // 出力:yamada@example.com

要素の存在チェック

ディクショナリに特定のキーが存在するかどうかを確認するには、ContainsKeyメソッドを使用します。

if (emailDic.ContainsKey("suzuki"))
{
    Console.WriteLine(emailDic["suzuki"]);
}
else
{
    Console.WriteLine("キーが存在しません。");
}

要素の削除

emailDic.Remove("tanaka");

ディクショナリ要素の列挙(ループ処理)

ディクショナリのすべての要素をループで処理するには、foreachループを使用します。

foreach (KeyValuePair<string, string> pair in emailDic)
{
    Console.WriteLine($"Key: {pair.Key}, Value: {pair.Value}");
}
タイトルとURLをコピーしました