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

C# Queryable TakeLast() 메서드 – 시퀀스 끝에서 요소 추출하기

C#의 Queryable.TakeLast() 메서드는 시퀀스의 끝에서부터 지정된 개수만큼의 요소를 추출할 때 사용되는 LINQ 연산자입니다. 특히 정렬된 컬렉션에서 최댓값처럼 뒤쪽에 위치한 요소들을 간편하게 가져올 수 있어 유용합니다.

TakeLast() 기본 사용법

먼저 예제에 사용할 정수형 배열입니다.

int[] pages = { 492, 290, 129, 602, 152 };

요소를 오름차순으로 정렬하기 위해 OrderBy() 메서드를 사용하고, 이어서 TakeLast() 메서드를 호출하면 정렬된 시퀀스의 마지막에서 원하는 개수의 요소를 얻을 수 있습니다.

pages.AsQueryable().OrderBy(s => s).TakeLast(2);

그럼 전체 예제 코드를 살펴보겠습니다.

예제

using System;
using System.Linq;
using System.Collections.Generic;
public class Demo {
   public static void Main() {
      // 책의 페이지 수
      int[] pages = { 492, 290, 129, 602, 152 };
      // 오름차순 정렬 후 마지막 두 개 요소 가져오기
      IEnumerable<int> last = pages.AsQueryable().OrderBy(s => s).TakeLast(2);
      foreach (int res in last) {
         Console.WriteLine(res);
      }
   }
}

실행 결과

492
602

결과 해석

배열을 오름차순으로 정렬하면 {129, 152, 290, 492, 602}가 됩니다. 여기서 TakeLast(2)를 호출하면 시퀀스의 마지막 두 요소인 492602, 즉 배열에서 가장 큰 값 두 개가 반환됩니다.

이처럼 TakeLast()는 정렬 방향과 조합하기에 따라 최댓값, 최솟값 또는 시퀀스 말미의 데이터를 유연하게 추출할 수 있는 강력한 메서드입니다. 반대로 앞쪽에서 요소를 가져오려면 Take() 메서드를 사용하면 됩니다.