C# 리스트(List)와 딕셔너리(Dictionary)란?
C#에서 딕셔너리(Dictionary)는 키(Key)와 값(Value)으로 구성된 컬렉션입니다. Dictionary<TKey, TValue>는 System.Collections.Generic 네임스페이스에 포함되어 있으며, 제네릭 타입입니다. 특히 존재하지 않는 키를 조회하려고 하면 오류가 발생한다는 점이 특징입니다.
반면 리스트(List)는 제네릭 클래스로, 다양한 데이터 타입을 저장하여 목록을 만들 수 있습니다.
리스트(List) 예제
리스트는 여러 항목들의 그룹입니다. 아래와 같이 문자열 목록을 손쉽게 생성할 수 있습니다.
List<string> myList = new List<string>() {
"Maths",
"English",
"Science"
};딕셔너리(Dictionary) 예제
딕셔너리는 키-값 쌍(key-value pair)의 집합입니다. 각 값은 고유한 키와 연결되어 저장됩니다.
Dictionary<string, int> d = new Dictionary<string, int>();
d.Add("squash", 1);
d.Add("football", 2);
d.Add("rugby", 3);리스트와 딕셔너리의 주요 차이점
- 데이터 구조: 리스트는 인덱스 기반의 순차 컬렉션이고, 딕셔너리는 키-값 쌍 기반의 컬렉션입니다.
- 접근 방식: 리스트는 인덱스를 통해 요소에 쉽게 접근할 수 있으며, 반복 처리(루핑)가 더 간단하고 빠릅니다.
- 검색 성능: 딕셔너리는 해시 테이블 기반으로 동작하기 때문에 키를 이용한 조회가 매우 빠르며, 대량의 데이터를 다룰 때 유리합니다.
- 오류 처리: 딕셔너리에서 존재하지 않는 키에 접근하면 KeyNotFoundException이 발생하므로, TryGetValue 메서드를 사용하는 것이 안전합니다.
정리
요소의 순서가 중요하거나 인덱스로 접근해야 하는 경우에는 리스트를, 키를 기반으로 값을 빠르게 조회해야 하는 경우에는 딕셔너리를 사용하는 것이 좋습니다. 두 컬렉션의 특성을 잘 이해하고 상황에 맞게 선택하면 더 효율적인 C# 코드를 작성할 수 있습니다.