Heim > Backend-Entwicklung > C++ > Wie kann ich mit LINQ die letzten N Elemente aus einer Sammlung abrufen?

Wie kann ich mit LINQ die letzten N Elemente aus einer Sammlung abrufen?

Patricia Arquette
Freigeben: 2025-01-04 03:49:39
Original
702 Leute haben es durchsucht

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

Abrufen der letzten N Elemente einer Sammlung mit LINQ

Linq bietet verschiedene Operatoren zum Bearbeiten und Abfragen von Objektsammlungen. Eine häufige Anforderung besteht darin, die letzten N Elemente aus einer Sammlung abzurufen. Dies kann durch eine Kombination von LINQ-Operatoren erreicht werden.

Nehmen wir an, wir haben eine Sammlung von Elementen. Um die letzten N Elemente zu erhalten, können wir die folgenden Schritte verwenden:

Schritt 1: Bestimmen Sie den Startindex:

Wir müssen den Startindex in der Sammlung berechnen wo die letzten N Elemente beginnen. Dies wird erreicht, indem die gewünschte Anzahl an Elementen von der Gesamtzahl der Elemente in der Sammlung abgezogen wird.

int startIndex = Math.Max(0, collection.Count() - N);
Nach dem Login kopieren

Schritt 2: Zum Startindex springen:

Mit dem „Skip“-Operator bewegen wir uns über den startIndex hinaus und wählen die verbleibenden Elemente im aus Sammlung.

var lastNElements = collection.Skip(startIndex);
Nach dem Login kopieren

Ansatz der Erweiterungsmethode:

Wenn es keinen integrierten Operator zum Abrufen der letzten N Elemente gibt, können wir eine Erweiterungsmethode erstellen um diesen Prozess zu vereinfachen. Die Erweiterungsmethode würde die IEnumerable-Schnittstelle erweitern und eine „TakeLast“-Methode bereitstellen.

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);
    }
}
Nach dem Login kopieren

Diese Erweiterungsmethode kann jetzt wie folgt verwendet werden:

var lastNElements = collection.TakeLast(5);
Nach dem Login kopieren

Überlegungen zur Leistung:

Der Aufruf von „Count()“ kann zur Aufzählung bestimmter Datenstrukturen führen, was zu zwei Durchläufen der Daten führt. Um zwei Durchgänge zu vermeiden, sollten Sie bei Vorwärtsaufzählungen die Verwendung eines temporären Puffers zum Speichern von Elementen während der Aufzählung in Betracht ziehen.

Das obige ist der detaillierte Inhalt vonWie kann ich mit LINQ die letzten N Elemente aus einer Sammlung abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage