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

C#에서 ArrayList의 특정 요소 범위에 대한 열거자 가져오기

C#의 ArrayList에서 특정 범위의 요소에 대한 열거자(Enumerator)를 가져오려면 GetEnumerator(int index, int count) 메서드를 사용합니다. 이 메서드는 지정한 인덱스부터 시작하여 지정한 개수만큼의 요소를 순회하는 열거자를 반환하며, 전체 컬렉션이 아닌 필요한 부분만 효율적으로 처리할 수 있게 해줍니다.

예제 1: 숫자 요소 순회하기

다음 예제에서는 정수 5개가 저장된 ArrayList에서 인덱스 1부터 3개의 요소에 대한 열거자를 가져와 출력합니다.

using System;
using System.Collections;

public class Demo {
   public static void Main() {
      ArrayList arrList = new ArrayList();
      arrList.Add(100);
      arrList.Add(200);
      arrList.Add(300);
      arrList.Add(400);
      arrList.Add(500);

      Console.WriteLine("범위 내 요소 출력...");
      IEnumerator demoEnum = arrList.GetEnumerator(1, 3);

      while (demoEnum.MoveNext()) {
         Object ob = demoEnum.Current;
         Console.WriteLine(ob);
      }
   }
}

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

범위 내 요소 출력...
200
300
400

인덱스 1부터 시작해 3개의 요소인 200, 300, 400이 순서대로 출력된 것을 확인할 수 있습니다.

예제 2: 문자열 요소로 여러 범위 순회하기

이번에는 문자열 요소를 가진 ArrayList에서 서로 다른 두 개의 범위를 지정해 열거자를 사용하는 예제입니다.

using System;
using System.Collections;

public class Demo {
   public static void Main() {
      ArrayList arrList = new ArrayList();
      arrList.Add("Andy");
      arrList.Add("Katie");
      arrList.Add("Taylor");
      arrList.Add("Steve");
      arrList.Add("Nathan");
      arrList.Add("Carl");
      arrList.Add("Mark");
      arrList.Add("Amy");
      arrList.Add("Jacob");
      arrList.Add("John");

      Console.WriteLine("범위 내 요소 출력...");
      IEnumerator demoEnum = arrList.GetEnumerator(1, 3);

      while (demoEnum.MoveNext()) {
         Object ob = demoEnum.Current;
         Console.WriteLine(ob);
      }

      Console.WriteLine("범위 내 요소 출력...");
      demoEnum = arrList.GetEnumerator(3, 5);

      while (demoEnum.MoveNext()) {
         Object ob = demoEnum.Current;
         Console.WriteLine(ob);
      }
   }
}

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

범위 내 요소 출력...
Katie
Taylor
Steve
범위 내 요소 출력...
Steve
Nathan
Carl
Mark
Amy

첫 번째 호출은 인덱스 1부터 3개의 요소(Katie, Taylor, Steve)를, 두 번째 호출은 인덱스 3부터 5개의 요소(Steve, Nathan, Carl, Mark, Amy)를 순회합니다.

핵심 포인트 정리

  • GetEnumerator(int index, int count): 시작 인덱스와 요소 개수를 지정해 해당 범위만 순회하는 열거자를 반환합니다.
  • MoveNext(): 열거자를 다음 요소로 이동시키며, 더 이상 요소가 없으면 false를 반환합니다.
  • Current: 현재 위치의 요소를 가져옵니다.
  • 인덱스는 0부터 시작하므로, 첫 번째 요소를 건너뛰고 싶다면 인덱스 1부터 지정하면 됩니다.