【C#】「Dictionary」クラスの基本的な使用方法
スポンサーリンク

概要

本記事では、キーと値のペアを格納することができる連想配列「Dictionary」クラスの基本的な使い方を紹介します。

特徴

メリット
  • キーに対応する値の取得が速い。
デメリット
  • メモリ使用量が多い。(追加の要素格納用に予備領域を確保しているため)
注意
  • Dictionaryクラスは、同一のキーを追加することはできない。

0.全体コード

using System;
using System.Collections.Generic;

namespace ConsoleApp1
{
    class Program
    {
        static void Main()
        {
            var dict1 = new Dictionary<string, int>();

            // 要素の追加
            dict1.Add("key1", 100);
            dict1["key2"] = 200;
            dict1["key3"] = 300;

            // 要素の取得
            int value;
            if (dict1.TryGetValue("key2", out value))
            {
                Console.WriteLine(value);
            }

            // 要素の数を取得
            Console.WriteLine(dict1.Count);

            // キーの一覧を取得
            foreach (string key in dict1.Keys)
            {
                Console.WriteLine(key);
            }

            // 値の一覧を取得
            foreach (int val in dict1.Values)
            {
                Console.WriteLine(val);
            }

            // 要素の削除
            dict1.Remove("key2");

            // キーが存在するか判定
            if (dict1.ContainsKey("key1"))
            {
                Console.WriteLine("key1 exists");
            }
        }
    }
}

1.名前空間宣言

Dictionaryクラスを使用できるように名前空間の使用を宣言します。

using System.Collections.Generic;

2.初期化

変数宣言

初期値なし

初期値なしインスタンスを生成します。

var dict1 = new Dictionary<string, int>();

初期値あり

初期値ありインスタンスを生成します。

var dict1 = new Dictionary<string, int>()
{
    {"key1", 100},
    {"key2", 200},
    {"key3", 300},
};

3.要素の追加

Addメソッド

var dict1 = new Dictionary<string, int>();
dict1.Add("key1", 100);
dict1.Add("key2", 200);
dict1.Add("key3", 300);
注意

この例では、同じキーを追加すると例外が発生します。

対策として以下の方法があります。

  • 【対策1】
    • 下記のキーの存在確認し、存在しない場合のみ追加します。
  • 【対策2】
    • 下記の[]演算子を使用し追加します。こうすることでキーが存在しない場合は追加され、キーが存在する場合はそのキーの値が更新されます。これにより例外発生しません。

[]演算子

var dict1 = new Dictionary<string, int>();
dict1["key1"] = 100;
dict1["key2"] = 200;
dict1["key3"] = 300;

4.要素の更新

[]演算子でキーに対応する値を更新します。

var dict1 = new Dictionary<string, int>();
dict1["key1"] = 100;
dict1["key2"] = 200;
dict1["key3"] = 300;

5.要素の取得

TryGetValueメソッド

TryGetValue関数を使用し指定したキーに対応する値を取得し、取得できた場合は値を表示します。

int value;
if (dict1.TryGetValue("key2", out value))
{
    Console.WriteLine(value);
}

[]演算子

[]演算子を使用し指定したキーに対応する値を表示します。

int value = dict1["key2"];
Console.WriteLine(value);

6.要素の削除

Remove関数で指定したキーに対応する要素を削除します。

dict1.Remove("key2");

7.要素の存在確認

ContainsKey関数で指定したキーが存在するか確認できます。

if (dict1.ContainsKey("key1"))
{
    Console.WriteLine("key1 exists");
}

8.要素の列挙

キーの列挙

Keysプロパティからキー一覧を取得します。

foreach (string key in dict1.Keys)
{
    Console.WriteLine(key);
}

値の列挙

Valuesプロパティから値一覧を取得します。

foreach (int val in dict1.Values)
{
    Console.WriteLine(val);
}

さいごに

以上がDictionaryクラスの基本的な使い方です。

見ていただきありがとうございました。

スポンサーリンク
おすすめの記事