C#에서 GetEnumerator() 메서드를 사용하면 SortedList 컬렉션을 순회할 수 있는 열거자(Enumerator)를 가져올 수 있습니다. 이 메서드는 IDictionaryEnumerator 타입의 열거자를 반환하며, MoveNext() 메서드와 함께 사용하면 SortedList에 저장된 키-값 쌍을 정렬된 순서대로 하나씩 탐색할 수 있습니다.
아래 예제를 통해 실제 사용 방법과 실행 결과를 확인해 보겠습니다.
예제 1: GetEnumerator()로 SortedList 순회하기
using System;
using System.Collections;
public class Demo {
public static void Main(String[] args){
SortedList sortedList = new SortedList();
sortedList.Add("A", "1");
sortedList.Add("B", "2");
sortedList.Add("C", "3");
sortedList.Add("D", "4");
sortedList.Add("E", "5");
sortedList.Add("F", "6");
sortedList.Add("G", "7");
sortedList.Add("H", "8");
sortedList.Add("I", "9");
sortedList.Add("J", "10");
Console.WriteLine("SortedList 요소...");
foreach(DictionaryEntry d in sortedList){
Console.WriteLine("키 = "+d.Key + ", 값 = " + d.Value);
}
Console.WriteLine("SortedList 키-값 쌍 개수 = "+sortedList.Count);
Console.WriteLine("
SortedList를 순회하는 열거자...");
IDictionaryEnumerator demoEnum = sortedList.GetEnumerator();
while (demoEnum.MoveNext())
Console.WriteLine("키 = " + demoEnum.Key + ", 값 = " + demoEnum.Value);
}
}실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
SortedList 요소... 키 = A, 값 = 1 키 = B, 값 = 2 키 = C, 값 = 3 키 = D, 값 = 4 키 = E, 값 = 5 키 = F, 값 = 6 키 = G, 값 = 7 키 = H, 값 = 8 키 = I, 값 = 9 키 = J, 값 = 10 SortedList 키-값 쌍 개수 = 10 SortedList를 순회하는 열거자... 키 = A, 값 = 1 키 = B, 값 = 2 키 = C, 값 = 3 키 = D, 값 = 4 키 = E, 값 = 5 키 = F, 값 = 6 키 = G, 값 = 7 키 = H, 값 = 8 키 = I, 값 = 9 키 = J, 값 = 10
예제 2: 키 자동 정렬 확인하기
이번에는 문자열 키를 입력 순서와 다르게 추가해 보겠습니다. SortedList는 내부적으로 키를 기준으로 자동 정렬하기 때문에, 열거자로 순회할 때도 항상 정렬된 순서로 요소가 반환됩니다.
using System;
using System.Collections;
public class Demo {
public static void Main(String[] args){
SortedList sortedList = new SortedList();
sortedList.Add("One", "1");
sortedList.Add("Two", "2");
sortedList.Add("Three", "3");
sortedList.Add("Four", "4");
sortedList.Add("Five", "5");
sortedList.Add("Six", "6");
sortedList.Add("Seven", "7");
sortedList.Add("Eight", "8");
sortedList.Add("Nine", "9");
sortedList.Add("Ten", "10");
Console.WriteLine("SortedList를 순회하는 열거자...");
IDictionaryEnumerator demoEnum = sortedList.GetEnumerator();
while (demoEnum.MoveNext())
Console.WriteLine("키 = " + demoEnum.Key + ", 값 = " + demoEnum.Value);
}
}실행 결과
추가한 순서와 무관하게 키의 사전순(알파벳순)으로 정렬되어 출력되는 것을 확인할 수 있습니다.
SortedList를 순회하는 열거자... 키 = Eight, 값 = 8 키 = Five, 값 = 5 키 = Four, 값 = 4 키 = Nine, 값 = 9 키 = One, 값 = 1 키 = Seven, 값 = 7 키 = Six, 값 = 6 키 = Ten, 값 = 10 키 = Three, 값 = 3 키 = Two, 값 = 2
핵심 정리
- GetEnumerator(): SortedList를 순회할 수 있는 IDictionaryEnumerator 열거자를 반환합니다.
- MoveNext(): 다음 요소로 이동하며, 더 이상 요소가 없으면 false를 반환합니다.
- Key / Value 속성: 열거자의 현재 위치에 있는 키와 값을 각각 가져옵니다.
- 자동 정렬: SortedList는 항상 키를 기준으로 정렬된 상태를 유지하므로, 열거자 순회 시에도 정렬된 순서가 보장됩니다.