C#에서 배열의 처음 몇 개 요소를 제외한 나머지 값들만 다루고 싶다면, LINQ에서 제공하는 Skip() 메서드를 사용하면 간단하게 해결할 수 있습니다.
Skip() 메서드란?
Skip()은 System.Linq 네임스페이스에 포함된 확장 메서드로, 시퀀스(배열, 리스트 등)의 시작 부분에서 지정한 개수만큼의 요소를 건너뛴 뒤, 나머지 요소들을 IEnumerable<T> 형태로 반환합니다. 원본 배열은 변경되지 않으며, 새로운 시퀀스가 생성된다는 점이 특징입니다.
예를 들어 다음과 같은 정수형 배열이 있다고 가정해 보겠습니다.
int[] arr = { 24, 40, 55, 62, 70, 82, 89, 93, 98 };
여기서 첫 4개의 요소(24, 40, 55, 62)를 건너뛰고 싶다면 아래처럼 작성합니다.
var ele = arr.Skip(4);
전체 예제 코드
아래는 배열 전체를 출력한 후, Skip() 메서드로 앞의 4개 요소를 건너뛴 결과를 확인하는 완전한 프로그램입니다.
using System.IO;
using System;
using System.Linq;
public class Demo {
public static void Main() {
int[] arr = { 24, 40, 55, 62, 70, 82, 89, 93, 98 };
Console.WriteLine("초기 배열...");
foreach (var res in arr) {
Console.WriteLine(res);
}
// 앞의 4개 요소 건너뛰기
var ele = arr.Skip(4);
Console.WriteLine("요소 건너뛴 후 새 배열...");
foreach (var res in ele) {
Console.WriteLine(res);
}
}
}
실행 결과
초기 배열... 24 40 55 62 70 82 89 93 98 요소 건너뛴 후 새 배열... 70 82 89 93 98
핵심 정리
위 결과를 보면 Skip(4)를 호출한 후 인덱스 0~3에 해당하는 24, 40, 55, 62가 제외되고, 70부터 시작하는 나머지 요소들만 출력된 것을 확인할 수 있습니다.
- Skip(n): 시퀀스의 앞에서 n개의 요소를 건너뜁니다.
- 원본 유지: 기존 배열은 그대로 남아 있으며, 새로운 시퀀스만 반환됩니다.
- 활용 팁: Take() 메서드와 함께 사용하면 페이징 처리처럼 특정 구간의 데이터만 손쉽게 추출할 수 있습니다. 예: arr.Skip(4).Take(3)