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 중국어 웹사이트의 기타 관련 기사를 참조하세요!