C# のディクショナリー (Dictionary) と KeyValuePair

C# のディクショナリーとは?

ここではディクショナリー (Dictionary) について説明します。

ディクショナリーというと、「辞書」という意味がすぐに浮かぶひとも多いと思います。 しかし、データ構造でいうディクショナリーというのは「キーと値のペアのコレクション(集まり)」のことです。

キーと値のペア、というのは、例えば社員番号でいえば、1000 = 鈴木さん、1050 = 山田部長、2003 = 佐藤さん、というように、 何らかの値 (=キー) を決めると、それに対する値が決まるもの、ということです。

ディクショナリには、そういうキーと値のペアをたくさん保持できるというわけです。

System.Collections.Generic 名前空間の下の Dictionary では、キーの型、値の型を指定できます。

尚、キーと値のペアというと、System.Collections 名前空間の Hashtable というのもあります。 Hashtable ではキー、値共に object 型を受け取ります。 しかし、ジェネリッククラスの Dictionary は強い型付けをして使うところが異なります。

using System.Collections;
using System.Collections.Generic;

class Program
{
  static void Main(string[] args)
  {
    var dic = new Dictionary();
    dic["CA"] = "California";
    dic["TX"] = "Texas";

    var ht = new Hashtable();
    ht.Add("CA", "California");
    ht.Add("TX", "Texas");
  }
}

C# のディクショナリの使い方

Dictionary<TKey, TValue> はキーの型、値の型を指定します。 < > 内のはじめの型指定がキーの型で、二つ目が値の型です。

次の例ではキー、値共に string 型としています。

using static System.Console;
using System.Collections.Generic;

class Program
{
  static void Main(string[] args)
  {
    var dic = new Dictionary<string, string>();
    dic["CA"] = "California";
    dic["TX"] = "Texas";
    foreach (var pair in dic)
    {
      WriteLine($"{pair.Key}: {pair.Value}");
    }
    // CA: California
    // TX: Texas
  }
}

ディクショナリ内では、 KeyValuePair という型でキーと値のペアを保持しています。

ディクショナリ内の要素を列挙するには、 foreach 文で KeyValuePair が取得できるので、それの Key プロパティ、Value プロパティからキーの値と値を取得できます。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 C# 入門