Fun Coding

学んだことを記録していきます!

【C#】Dictionaryに要素を追加する方法

Dictionaryに要素を追加する方法をサンプルコードを交えて解説したいと思います。

説明

方法
メソッド名
Add
TryAdd
ブラケット記法
Add

・引数に指定したKeyとValueを追加
・Keyが重複した場合はArgumentExceptionが発生する

TryAdd

・引数に指定したKeyとValueを追加を試みる
・Keyが重複していなかった場合はTrueを返す
・Keyが重複していた場合はFalseを返す

ブラケット記法

Keyが重複した場合はValueが上書きされる

コード
using System;
using System.Collections.Generic;

namespace Sample {
    /// <summary>
    /// メインプログラム
    /// </summary>
    public class Program {
        /// <summary>
        /// Dictionaryに要素を追加
        /// </summary>
        static void Main() {
            // Dictionaryの生成
            var pairs1 = new Dictionary<int, string>();
            var pairs2 = new Dictionary<int, string>();
            var pairs3 = new Dictionary<int, string>();

            // 要素を追加
            // Addを使った方法
            Console.WriteLine("Add");
            try {
                pairs1.Add(1, "一郎");
                pairs1.Add(2, "二郎");
                pairs1.Add(3, "三郎");
                pairs1.Add(1, "四郎");
            }
            catch(Exception ex) {
                Console.WriteLine("Keyが重複した場合 : " + ex.GetType());
            }

            Console.WriteLine("[Key, Value] : " + string.Join(", ", pairs1));
            Console.WriteLine();


            // TryAddを使った方法
            Console.WriteLine("TryAdd");
            var tryAddReturns = new List<bool>() {
                pairs2.TryAdd(1, "一郎"),
                pairs2.TryAdd(2, "二郎"),
                pairs2.TryAdd(3, "三郎"),
                pairs2.TryAdd(1, "四郎")
            };
            Console.WriteLine("戻り値 : " + string.Join(", ", tryAddReturns));

            Console.WriteLine("[Key, Value] : " + string.Join(", ", pairs2));
            Console.WriteLine();


            // ブラケット記法を使った方法
            Console.WriteLine("ブラケット記法");
            pairs3[1] = "一郎";
            pairs3[2] = "二郎";
            pairs3[3] = "三郎";
            pairs3[1] = "四郎";

            Console.WriteLine("[Key, Value] : " + string.Join(", ", pairs3));
            Console.WriteLine();
        }
    }
}
出力
Add
Keyが重複した場合 : System.ArgumentException
[Key, Value] : [1, 一郎], [2, 二郎], [3, 三郎]

TryAdd
戻り値 : True, True, True, False
[Key, Value] : [1, 一郎], [2, 二郎], [3, 三郎]

ブラケット記法
[Key, Value] : [1, 四郎], [2, 二郎], [3, 三郎]