[C# 문법] C# 딕셔너리 키 중복 허용하기

소개

  • 안녕하세요. 오늘은 C# 문법에서 Dictionary 컬렉션 사용 방법에 대해서 알려 드리려고 합니다.

  • 그 중에서도, 딕셔너리에서 키를 중복 허용하게 해서 데이터를 저장할 수 있게 하는 방법에 대해서 알려 드리려고 합니다.

  • 딕셔너리는 키가 중복되는 것을 허용하지 않습니다. 따라서 동일한 키에 여러 객체를 관련 지을 수 없습니다.

  • 예를 들면 줄임말과 그 줄임말의 뜻을 딕셔너리로 관리하고 싶다고 가정합니다.

  • 이때 사음에 나온 것처럼 동일한 줄임말에 여러 용어를 대응시키려고 해도 Dictionary<string, string> 에는 대응 시킬 수 없습니다.

    • pc : 프로그램 카운터
    • pc : 퍼스널 컴퓨터
  • 하지만, 딕셔너리에서도 키를 중복허용하여 저장할 수 있는 방법은 있습니다.
  • List<string> 형을 지정하여 이용하면 됩니다. 예제 코드를 통해서 바로 보여 드리도록 하겠습니다.

예제 코드

using System;
using System.Collections.Generic;

namespace ConsoleApp7
{
    static class Program
    {
        static void Main(string[] args)
        {
            // 딕셔너리 초기화
            var dic = new Dictionary<string, List<string>>()
            {
                {"PC" , new List<string> {"Personal Computer", "Program Counter"} },
                {"CD" , new List<string> {"Compact Disk", "Cash Dispensers"} }
            };

            // 딕셔너리 값 추가
            var key = "EC";
            var value = "전자상거래";

            if (dic.ContainsKey(key))
            {
                dic[key].Add(value);
            }
            else
            {
                dic[key] = new List<string>() { value };
            }

            foreach (var item in dic)
            {
                foreach (var list in item.Value)
                {
                    Console.WriteLine($"key : {item.Key} , value : {list}");
                }
            }
        }
    }
}

실행 결과

key : PC , value : Personal Computer
key : PC , value : Program Counter
key : CD , value : Compact Disk
key : CD , value : Cash Dispensers
key : EC , value : 전자상거래
  • 위와 같이 키가 동일하지만 딕셔너리 컬렉션에 데이터가 저장되어 출력된 것을 확인할 수 있습니다.
728x90

'C# > C# 문법' 카테고리의 다른 글

[C# 문법] C# StreamReader 클래스 파일 읽기  (0) 2021.09.05
[C# 문법] C# 요일 구하기  (0) 2021.09.05
[C# 문법] C# 폴더 시간 비교하기  (0) 2021.09.02
[C# 문법] C# yield  (0) 2021.09.01
[C# 문법] C# Dictionary 변환  (0) 2021.08.30

이 글을 공유하기

댓글

Designed by JB FACTORY