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

C# LINQ Skip() 메서드 – 시퀀스에서 요소를 건너뛰고 나머지 반환하기

C# LINQ Skip() 메서드란?

C#의 Skip() 메서드는 LINQ에서 제공하는 연산자로, 시퀀스(컬렉션)의 앞쪽에서 지정한 개수만큼 요소를 건너뛴 후 나머지 요소들을 반환합니다. 예를 들어 상위 순위를 제외한 목록을 가져오거나, 페이징 처리를 구현할 때 매우 유용하게 사용됩니다.

기본 문법

public static IEnumerable<TSource> Skip<TSource>(this IEnumerable<TSource> source, int count);
  • source: 요소를 건너뛸 대상 컬렉션
  • count: 건너뛸 요소의 개수

Skip() 메서드 사용 예제

먼저 다음과 같은 정수 배열이 있다고 가정해 보겠습니다.

int[] marks = { 80, 55, 79, 99 };

이제 람다 식(Lambda Expression)을 활용해 요소들을 내림차순으로 정렬한 뒤, 앞의 2개 요소를 건너뛰어 보겠습니다.

IEnumerable<int> selMarks = marks.AsQueryable().OrderByDescending(s => s).Skip(2);

전체 예제 코드

using System;
using System.Linq;
using System.Collections.Generic;

public class Demo {
    public static void Main() {
        int[] marks = { 80, 55, 79, 99 };
        IEnumerable<int> selMarks = marks.AsQueryable().OrderByDescending(s => s).Skip(2);
        Console.WriteLine("앞의 두 학생 결과를 건너뛴 후...");
        foreach (int res in selMarks) {
            Console.WriteLine(res);
        }
    }
}

코드 설명 및 실행 결과

위 코드의 동작 과정은 다음과 같습니다.

  1. OrderByDescending(s => s) : 배열 요소를 내림차순으로 정렬합니다 → 99, 80, 79, 55
  2. Skip(2) : 정렬된 시퀀스에서 앞의 2개 요소(99, 80)를 건너뜁니다.
  3. foreach : 남은 요소들을 하나씩 출력합니다.

따라서 최종 출력 결과는 다음과 같습니다.

79
55

마무리 정리

LINQ의 Skip() 메서드는 지정한 개수만큼 요소를 건너뛰고 나머지 시퀀스를 반환하는 간단하지만 강력한 도구입니다. 특히 OrderBy(), OrderByDescending() 같은 정렬 연산자와 함께 사용하면 원하는 순위 이후의 데이터를 손쉽게 추출할 수 있으며, Take() 메서드와 조합하면 페이지 단위 데이터 조회(페이징)도 간편하게 구현할 수 있습니다.