[C# 문법] C# Dictionary(딕셔너리) 사용시, “동일한 키를 사용하는 항목이 이미 추가되었습니다.” 에러 해결 방법


 

안녕하세요.

 

오늘은 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<intint> dic = new Dictionary<intint>();

 

            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);

            }

 

        }

    }

}

 

Colored by Color Scripter

cs


실행 결과




위에서 보시게 되면, 저는 ContainsKey를 이용하여 Dictionary에서 중복된 키 값이 있는지 없는지 체크하여, 만약에 해당 키가 이미 저장되어 있으면 저장이 안되고 키가 없을 경우에만 Dicitonary에 값이 저장 되게끔 예외처리를 하였습니다.

 

감사합니다.^^


728x90

이 글을 공유하기

댓글

Designed by JB FACTORY