C#에서 GetRange() 메서드를 사용하면 리스트(List)에서 원하는 범위의 요소를 손쉽게 추출할 수 있습니다. 이 메서드는 지정한 시작 인덱스부터 일정 개수의 요소를 새로운 리스트로 반환합니다.
GetRange() 메서드의 기본 구조
GetRange() 메서드는 두 개의 매개변수를 받습니다.
- index: 추출을 시작할 인덱스 (0부터 시작)
- count: 추출할 요소의 개수
리스트 생성 및 요소 추가
먼저 정수형 리스트를 만들고 요소를 추가해 보겠습니다.
List<int> arr1 = new List<int>(); arr1.Add(10); arr1.Add(20); arr1.Add(30); arr1.Add(40); arr1.Add(50);
특정 범위의 요소 가져오기
이제 인덱스 1부터 3개의 요소(20, 30, 40)를 새로운 리스트로 가져와 보겠습니다.
List<int> myList = arr1.GetRange(1, 3);
여기서 첫 번째 매개변수 1은 시작 인덱스이고, 두 번째 매개변수 3은 가져올 요소의 개수입니다. 즉, 인덱스 1, 2, 3에 해당하는 요소들이 반환됩니다.
전체 예제 코드
using System;
using System.Collections.Generic;
public class Demo {
public static void Main() {
List<int> arr1 = new List<int>();
arr1.Add(10);
arr1.Add(20);
arr1.Add(30);
arr1.Add(40);
arr1.Add(50);
Console.WriteLine("초기 리스트 ...");
foreach (int i in arr1) {
Console.WriteLine(i);
}
Console.WriteLine("범위 내 요소 가져오기 ...");
List<int> myList = arr1.GetRange(1, 3);
foreach (int res in myList) {
Console.WriteLine(res);
}
}
}실행 결과
초기 리스트 ... 10 20 30 40 50 범위 내 요소 가져오기 ... 20 30 40
정리
GetRange() 메서드는 원본 리스트를 변경하지 않고 새로운 리스트를 반환하기 때문에, 부분 집합 데이터가 필요할 때 매우 유용합니다. 다만 인덱스가 리스트 범위를 벗어나면 ArgumentOutOfRangeException이 발생하므로, 시작 인덱스와 개수가 유효한지 항상 확인하는 것이 좋습니다.