OrderedDictionary 클래스
OrderedDictionary 클래스 (System.Collections.Specialized)
키나 인덱스에서 액세스할 수 있는 키/값 쌍의 컬렉션을 나타냅니다.
learn.microsoft.com
- .NET 2.0
- 비제네릭 사전 클래스, 제네릭 버전은 없음
- Hashtable + ArrayList(RemoveAt, 정수 인덱서 등을 지원)
- 요소들의 저장 순서가 추가 순서와 동일함 -> 키 뿐만 아니라 색인으로도 요소에 접근 할 수 있음
ListDictionary 클래스
ListDictionary 클래스 (System.Collections.Specialized)
단일 연결 목록을 사용하여 IDictionary를 구현합니다. 일반적으로 10개 미만의 항목이 포함된 컬렉션에 사용하는 것이 좋습니다.
learn.microsoft.com
- 비제네릭 버전만 존재함
- 단일하게 연결된 목록(단일 연결 목록, Singly Linked List) 자료구조로 저장
- 항목들이 추가된 순서는 유지함
- 목록이 클 경우 엄청나게 느림
- 아주 작은 목록(10개 미만)에서만 효율적임
HybridDictionary 클래스
HybridDictionary 클래스 (System.Collections.Specialized)
컬렉션이 작을 때는 ListDictionary를 사용하여 IDictionary를 구현한 다음 컬렉션이 커지면 Hashtable로 전환합니다.
learn.microsoft.com
- 비제네릭 버전만 존재함
- ListDictionary + Hashtable
- 처음에는 ListDictionary로, 자료가 일정 크기가 되면 Hashtable로 전환
- 사전이 작을 때에는 메모리를 적게 먹는 방식으로, 크면 성능이 좋은 방식
- 두 방식에 따르는 전환비용이나 Dictionary의 메모리 사용량이 크게 나쁘지 않아 이걸 쓸 일은 거의 없음
'C#' 카테고리의 다른 글
[C#] IEqualityComparer<T>, IEqualityComparer, EqualityComparer (0) | 2023.10.02 |
---|---|
[C#] KeyedCollection<TKey,TItem>, DictionaryBase (0) | 2023.09.30 |
[C#] Collection<T>, CollectionBase, ReadOnlyCollection<T> (0) | 2023.09.28 |
[C#] SortedDictionary<TKey,TValue>, SortedList<Tkey,TValue>, SortedList (0) | 2023.09.26 |
[C#] Dictionary<TKey,TValue>, Hashtable (0) | 2023.09.22 |
[C#] IDictionary<TKey,TValue>, IReadOnlyDictionary<TKey,TValue>, IDictionary (0) | 2023.09.20 |
[C#] HashSet<T>, SortedSet<T> (0) | 2023.09.16 |
[C#] BitArray (0) | 2023.09.14 |