プログラミングを試してみたい人向けのC#プログラミングチュートリアル

Dictionaryの使い方

POINT
  • キーと値をセットでリスト管理できるDictionary
  • Dictionaryの追加、更新、削除の仕方
  • foreachでの参照
目次

Dictionaryの使い方

Dictionaryは、キーと値をセットでリストとして管理できる型です。
キーが重複するとエラーになるため、キーで一意にデータ管理されていることが保証されます。
値には、クラスやオブジェクトも使用できます。 使用する場合は、newが必要です。 下記のように定義します。

使用例
using System.Collections.Generic;
・・・
Dictionary<キーの型, 値の型> ディクショナリ名 = new Dictionary<キーの型, 値の型>();

Dictionaryの追加、更新、削除

Dictionaryへの追加はAddを呼び出します。

使用例
Dictionary名.Add(キー, 値);

Dictionaryの値には、キーを指定することでアクセスできます。
値を渡すことで更新ができます。

使用例
Dictionary名[キー] = 更新する値;

Dictionaryから要素を削除するにはRemoveを呼び出します。

使用例
Dictionary名.Remove(キー);

foreachでの参照

foreachで参照する場合は、Dictionary名.Keysに対して行います。

使用例
foreach(キーの型 key in ディクショナリ名.Keys)
{
    // ディクショナリ名[key]で値参照
}

foreachでの参照は、KeyValuePairを使用する方法もあります。

使用例
foreach(KeyValuePair<キーの型, 値の型> kvp in ディクショナリ名 )
{
    // kvp.Keyでキーを参照、kvp.Valueで値参照
}

Dictionaryを使用したサンプルプログラム

サンプルプログラムをご紹介します。
次のファイルを同じフォルダに作成してください。

ファイル名:Program.cs
public class Program
{
    public static void Main()
    {
        // Dictionary<キーの型, 値の型>で定義
        System.Collections.Generic.Dictionary<string, string> IdNameList = new System.Collections.Generic.Dictionary<string, string>();
        
        // Dictionary名.Add(キー, 値)で追加
        IdNameList.Add("ID001", "1つ目");
        IdNameList.Add("ID002", "2つ目");
        IdNameList.Add("ID003", "3つ目");
    
        // キーがすでに含まれているかはDictionary名.ContainsKey(キー)で確認
        if (IdNameList.ContainsKey("ID001"))
        {
            System.Console.WriteLine("ID001はすでに登録済みです");
        }
        
        // Dictionary名[キー]でキーに紐づく値を参照
        IdNameList["ID001"] += "更新";
        System.Console.WriteLine("ID001の値は「" + IdNameList["ID001"] + "」です");
        
        // foreachで参照する場合は、Dictionary名.Keysをforeachで参照
        foreach(string key in IdNameList.Keys)
        {
            System.Console.WriteLine(key + "=" + IdNameList[key]);
        }
        
        // Dictionary名.Remove(キー)で削除
        IdNameList.Remove("ID002");
        
        // foreachでの参照は、KeyValuePairを使用する方法も可能
        foreach( System.Collections.Generic.KeyValuePair kvp in IdNameList )
        {
            System.Console.WriteLine("Key=[{0}] Value=[{1}]", kvp.Key, kvp.Value);
        }
        
        // キー入力待ち
        System.Console.ReadKey();
    }
}

ファイル名:Compile.bat
C:¥Windows¥Microsoft.NET¥Framework¥v4.0.30319¥csc.exe *.cs
pause
Program.exe 実行結果
ID001はすでに登録済みです
ID001の値は「1つ目更新」です
ID001=1つ目更新
ID002=2つ目
ID003=3つ目
Key=[ID001] Value=[1つ目更新]
Key=[ID003] Value=[3つ目]

ファイルを作成できたらCompile.batを実行してみましょう。
同じフォルダにProgram.exeが作成されます。
Program.exeを実行して「Program.exe 実行結果」のように表示されたら成功です。