Section 27.2: Dictionary<TKey, TValue>
Dictionary<TKey, TValue>
은 일종의 map
이라고 할 수 있다. 하나의 Dictionary
내에서는 주어진 key
에 대하여 오직 하나의 value
만이 존재할 수 있다.
using System.Collections.Generic;
var people = new Dictionary<string, int>
{
{ "John", 30 }, {"Mary", 35}, {"Jack", 40}
};
// 데이터 읽기
Console.WriteLine(people["John"]); // 30
Console.WriteLine(people["George"]); // KeyNotFoundException 을 발생시킨다
int age;
if (people.TryGetValue("Mary", out age))
{
Console.WriteLine(age); // 35
}
// 데이터를 추가 및 변경하기
people["John"] = 40; // 이러한 방식으로 값을 덮어쓸 수 있다
people.Add("John", 40); // "John" 이라는 key 가 이미 존재하므로 ArgumentException 을 발생시킨다
// 요소 반복 수행하기 (iterate)
foreach(KeyValuePair<string, int> person in people)
{
Console.WriteLine("Name={0}, Age={1}", person.Key, person.Value);
}
foreach(string name in people.Keys)
{
Console.WriteLine("Name={0}", name);
}
foreach(int age in people.Values)
{
Console.WriteLine("Age={0}", age);
}
컬렉션 초기화 (collection initialization) 수행시에 중복된 키를 선언한 경우:
var people = new Dictionary<string, int>
{
{ "John", 30 }, {"Mary", 35}, {"Jack", 40}, {"Jack", 40}
}; // "Jack" 이라는 key 가 이미 존재하므로 ArgumentException 을 발생시킨다
본 문서는 C# Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.
[출처] https://books.goalkicker.com/CSharpBook/
반응형
'번역 > C# Notes for Professionals' 카테고리의 다른 글
27.4: T[ ] (T 타입을 갖는 배열) (0) | 2021.08.17 |
---|---|
27.3: SortedSet<T> (0) | 2021.08.17 |
27.1: HashSet<T> (0) | 2021.08.12 |
26.5: 컬렉션 초기자 (Collection Initializer) 에서 배열을 인자로 받기 (0) | 2021.08.11 |
26.4: 객체 초기자 (Object initializer) 내에서 컬렉션 초기자 (Collection initializer) 사용하기 (0) | 2021.08.11 |