C#에서 LINQ의 Skip() 메서드를 사용하면 배열이나 컬렉션의 앞부분에서 지정된 개수만큼 요소를 건너뛰고, 나머지 요소들만 손쉽게 가져올 수 있습니다. 이 글에서는 실제 예제 코드와 함께 Skip() 메서드의 사용법을 자세히 알아보겠습니다.
1. 예제용 배열 준비하기
먼저 다음과 같이 정수형 배열을 선언합니다.
int[] points = { 210, 250, 300, 350, 420};
2. Skip() 메서드 사용법
Skip() 메서드는 인자로 전달된 숫자만큼 시퀀스의 첫 번째 요소부터 차례대로 건너뛴 후, 남은 요소들을 반환합니다. 아래 코드에서는 먼저 OrderByDescending()으로 내림차순 정렬을 수행한 뒤, 3개의 요소를 건너뛰도록 작성했습니다.
IEnumerable<int> skipEle = points.AsQueryable().OrderByDescending(s => s).Skip(3);
3. 전체 예제 코드
using System;
using System.Linq;
using System.Collections.Generic;
public class Demo {
public static void Main() {
int[] points = { 210, 250, 300, 350, 420};
Console.WriteLine("Initial array...");
foreach (int res in points)
Console.WriteLine(res);
IEnumerable<int> skipEle = points.AsQueryable().OrderByDescending(s => s).Skip(3);
Console.WriteLine("Skipped 3 elements...");
foreach (int res in skipEle)
Console.WriteLine(res);
}
}
4. 실행 결과
Initial array... 210 250 300 350 420 Skipped 3 elements... 250 210
5. 코드 동작 원리
위 코드가 어떻게 동작하는지 단계별로 살펴보겠습니다.
- 배열
{ 210, 250, 300, 350, 420 }을 OrderByDescending(s => s)로 내림차순 정렬하면{ 420, 350, 300, 250, 210 }이 됩니다. - Skip(3)이 정렬된 시퀀스에서 처음 3개의 요소(420, 350, 300)를 건너뜁니다.
- 결과적으로 남아 있는 두 요소인 250과 210이 최종 출력됩니다.
참고 사항
Skip() 메서드는 지연 실행(lazy execution) 방식으로 동작하기 때문에, 실제로 foreach 문 등으로 열거할 때 쿼리가 평가됩니다. 또한 건너뛸 개수가 시퀀스 전체 길이보다 크면 빈 시퀀스가 반환되므로 안전하게 사용할 수 있습니다.