Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#에서 SortedList를 반복하는 열거자(Enumerator) 가져오는 방법

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는 항상 키를 기준으로 정렬된 상태를 유지하므로, 열거자 순회 시에도 정렬된 순서가 보장됩니다.