C# - Dictionary.add()로 데이터 추가

add()를 이용하여 딕셔너리에 key-value 값을 추가하는 방법을 소개합니다.

1. Dictionary.add()로 데이터 추가

Dictionary.add()는 인자로 전달된 key, value를 딕셔너리에 추가합니다.

namespace Example {
    public class Program {
        public static void Main(string[] args) {

            Dictionary<string, int> dict = new Dictionary<string, int>()
            {
                { "one", 1 },
                { "two", 2 }
            };

            dict.Add("three", 3);
            dict.Add("fourth", 4);

            foreach(var x in dict) {
                Console.WriteLine(x);
            }
        }
    }
}

Output:

[one, 1]
[two, 2]
[three, 3]
[fourth, 4]

2. 중복 key 추가 시, ArgumentException 발생

만약 이미 딕셔너리에 저장된 key와 동일한 key를 추가하면 ArgumentException가 발생합니다.

아래와 같이 try-catch로 예외처리할 수 있습니다.

namespace Example {
    public class Program {
        public static void Main(string[] args) {

            Dictionary<string, int> dict = new Dictionary<string, int>()
            {
                { "one", 1 },
                { "two", 2 }
            };

            try {
                dict.Add("two", 3);
            } catch (ArgumentException e) {
                Console.WriteLine(e);
            }
        }
    }
}

Output:

System.ArgumentException: An item with the same key has already been added. Key: two
   at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior)
   at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value)

3. key 존재 확인 후 데이터 추가

ArgumentException를 피하는 다른 방법으로, 데이터를 추가하기 전에 딕셔너리에 추가하려는 key가 있는지 확인 후 데이터를 추가할 수 있습니다.

namespace Example {
    public class Program {
        public static void Main(string[] args) {

            Dictionary<string, int> dict = new Dictionary<string, int>()
            {
                { "one", 1 },
                { "two", 2 }
            };

            if (!dict.ContainsKey("two")) {
                dict.Add("two", 3);    
            }

            foreach(var x in dict) {
                Console.WriteLine(x);
            }
        }
    }
}

Output:

[one, 1]
[two, 2]
Loading script...
codechachaCopyright ©2019 codechacha