LINQ und Array-Reihenfolge: Detaillierte Erläuterung, welche Methoden die Reihenfolge beibehalten und welche nicht
Wenn Sie LINQ to Objects-Vorgänge für sortierte Arrays verwenden, achten Sie darauf, Vorgänge zu vermeiden, die die Reihenfolge des ursprünglichen Arrays zerstören. Die folgende Analyse gibt Ihnen Orientierung:
Absolute Möglichkeit, die Ordnung aufrechtzuerhalten:
- AsEnumerable:
- Besetzung:
- Konkat:
- Auswählen:
- ToArray:
- ZurListe:
Diese Methoden ordnen Quellelemente Ergebniselementen zu und behalten dabei die Reihenfolge bei.
Übliche Art, Ordnung zu halten:
-
Eindeutig: Filtern Sie doppelte Elemente heraus.
-
Außer: Filtert Elemente heraus, die in einer anderen Sequenz vorhanden sind.
-
Schnittmenge: Filtern Sie nach gemeinsamen Elementen in mehreren Sequenzen.
-
OfType: Filtert Elemente nach Typ.
-
Prepend (neu in .NET 4.7.1): Fügt den angegebenen Wert vor dem Element hinzu.
-
Überspringen: Überspringen Sie die angegebene Anzahl von Elementen.
-
SkipWhile: Überspringt Elemente, bis die angegebene Bedingung erfüllt ist.
-
Take: Gibt die angegebene Anzahl von Elementen zurück.
-
TakeWhile: Gibt Elemente zurück, bis die angegebene Bedingung erfüllt ist.
-
Wo: Filtert Elemente basierend auf einem Prädikat.
-
Zip (neu in .NET 4): Führen Sie entsprechende Elemente in mehreren Sequenzen zusammen.
So vernichten Sie die Bestellung:
-
ToDictionary: Konvertiert Elemente in ein Wörterbuch, was zu einer ungeordneten Sammlung führt.
-
ToLookup: Konvertiert Elemente in eine Nachschlagetabelle, was zu einer ungeordneten Sammlung führt.
Möglichkeiten, die Reihenfolge explizit neu zu definieren:
-
OrderBy: Elemente in aufsteigender Reihenfolge sortieren.
-
OrderByDescending: Elemente in absteigender Reihenfolge sortieren.
-
Umkehren: Kehren Sie die Reihenfolge der Elemente um.
-
ThenBy: Elemente nach einem anderen Attribut sortieren und dabei die ursprüngliche Reihenfolge beibehalten.
-
ThenByDescending: Elemente in absteigender Reihenfolge nach einem anderen Attribut sortieren und dabei die ursprüngliche Reihenfolge beibehalten.
So legen Sie die Reihenfolge gemäß den Regeln neu fest:
- GroupBy: Drücken Sie das Gruppenelement, um die Reihenfolge der Elemente in jeder Gruppe aufrechtzuerhalten.
GroupJoin: - Basierend auf dem Schlüsselverbindungselement die Reihenfolge externer Quellen und Elemente in jeder Gruppe beibehalten.
Join:
Die Reihenfolge der Verbindungselemente basierend auf der Schlüsselverbindung wird beibehalten. -
selectMany: Generieren Sie eine Reihe von Sequenzen, um Elemente in jeder Sequenz in einer unvorhersehbaren Reihenfolge zu kombinieren.
- Union: Mehrere Sequenzen verschmelzen und Elemente in der Reihenfolge der bereitgestellten Sequenzen generieren.
- Durch das Verständnis dieser subtilen Unterschiede können Sie die gewünschte Reihenfolge des Arrays beibehalten, wenn Sie den LINQ -Betrieb ausführen, um die Integrität für weitere Behandlung oder Anzeige sicherzustellen.
Das obige ist der detaillierte Inhalt vonWelche LINQ-Methoden behalten die Array-Reihenfolge bei und welche nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!