안녕하세요.
오늘은 C# Dictionary 사용시, “동일한 키를 사용하는 항목이 이미 추가되었습니다.” 에러가 뜨지 않게 해결하는 방법을 알려 드리려고 합니다.
Dictionary 의 형태를 보시게 되면 Dictionary<Key, Value> 값을 가지는 제너릭 컬렉션입니다.
그런데, 종종 Dictionary 를 사용하다가 “동일한 키를 사용하는 항목이 이미 추가되었습니다.” 라는 에러를 만나시는 경우가 있는데요.
에러 구문
이와 같은 에러가 발생하는 이유는 에러 내용 그대로 Key 값에 이전에 동일한 Key 값이 현재 저장되어 있는데 또 같은 Key가 저장하려고 할 때 생기는 문제입니다.
그럼 동일한 키가 저장 되어 있으면 해당 키는 저장되지 않게 조건을 주어야 하는데요. 그 조건을 어떻게 주어야 하는지 예제 코드를 통해서 알려드리겠습니다.
예제 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace DictionaryTest { class Program { static void Main(string[] args) { Dictionary<int, int> dic = new Dictionary<int, int>();
for(int idx = 1; idx < 5; idx++) { dic.Add(idx, idx); //Key, Value 저장 }
for (int idx = 1; idx < 5; idx++) { //동일한 키가 저장되어 있는지 체크 if(dic.ContainsKey(idx) == false) dic.Add(idx, idx); //Key, Value 저장 }
foreach(var pair in dic) { Console.WriteLine("Key : {0} Value : {1}", pair.Key, pair.Value); }
} } }
|
실행 결과
위에서 보시게 되면, 저는 ContainsKey를 이용하여 Dictionary에서 중복된 키 값이 있는지 없는지 체크하여, 만약에 해당 키가 이미 저장되어 있으면 저장이 안되고 키가 없을 경우에만 Dicitonary에 값이 저장 되게끔 예외처리를 하였습니다.
감사합니다.^^
'C# > C# 문법' 카테고리의 다른 글
[C# 문법] C# 컬렉션 Hashtable (해시 테이블) 사용 예제 (0) | 2020.01.31 |
---|---|
[C# 문법] StringBuilder 클래스 이용하여 문자열 연결하기 (0) | 2020.01.13 |
[C# 문법] C# DataTable 에서 ColumnName(컬럼이름) 얻어오는 방법 (0) | 2020.01.05 |
[C# 문법] C# Math 클래스 사용 및 메서드 종류 (0) | 2020.01.02 |
[C# 문법] C# DataTable 에서 저장된 값들 Null 체크하는 방법 (0) | 2020.01.01 |
이 글을 공유하기