[C# 문법] C# 딕셔너리 키 중복 허용하기
- C#/C# 문법
- 2021. 9. 5. 16:03
소개
안녕하세요. 오늘은 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 |
이 글을 공유하기