>백엔드 개발 >C++ >LINQ를 사용하여 컬렉션에서 마지막 N개 요소를 어떻게 검색할 수 있나요?

LINQ를 사용하여 컬렉션에서 마지막 N개 요소를 어떻게 검색할 수 있나요?

Patricia Arquette
Patricia Arquette원래의
2025-01-04 03:49:39699검색

How Can I Retrieve the Last N Elements from a Collection Using LINQ?

LINQ를 사용하여 컬렉션의 마지막 N 요소 검색

Linq는 개체 컬렉션을 조작하고 쿼리할 수 있는 다양한 연산자를 제공합니다. 일반적인 요구 사항 중 하나는 컬렉션에서 마지막 N개 요소를 가져오는 것입니다. 이는 LINQ 연산자의 조합을 통해 달성할 수 있습니다.

항목 컬렉션이 있다고 가정해 보겠습니다. 마지막 N개 요소를 얻으려면 다음 단계를 사용할 수 있습니다.

1단계: 시작 인덱스 결정:

컬렉션의 시작 인덱스를 계산해야 합니다. 마지막 N 요소가 시작되는 곳입니다. 컬렉션의 총 요소 수에서 원하는 요소 수를 빼면 됩니다.

int startIndex = Math.Max(0, collection.Count() - N);

2단계: 시작 색인으로 건너뛰기:

'Skip' 연산자를 사용하여 startIndex를 지나 이동하고 collection.

var lastNElements = collection.Skip(startIndex);

확장 방법 접근 방식:

마지막 N 요소를 가져오는 내장 연산자가 없는 경우 확장 방법을 만들 수 있습니다. 이 프로세스를 단순화합니다. 확장 메서드는 IEnumerable 인터페이스를 확장하고 'TakeLast' 메서드를 제공합니다.

public static class MiscExtensions
{
    public static IEnumerable<T> TakeLast<T>(this IEnumerable<T> source, int N)
    {
        // Determine the starting index
        int startIndex = Math.Max(0, source.Count() - N);

        // Skip to the starting index and select remaining elements
        return source.Skip(startIndex);
    }
}

이제 이 확장 메서드는 다음과 같이 사용할 수 있습니다.

var lastNElements = collection.TakeLast(5);

성능 고려 사항:

'Count()'를 호출하면 특정 데이터 구조가 열거될 수 있습니다. 결과적으로 데이터에 대한 두 번의 패스가 발생합니다. 두 번의 패스를 피하기 위한 순방향 열거형의 경우 열거 중에 항목을 저장하기 위해 임시 버퍼를 사용하는 것이 좋습니다.

위 내용은 LINQ를 사용하여 컬렉션에서 마지막 N개 요소를 어떻게 검색할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.