Heim > Backend-Entwicklung > C++ > Welche LINQ-Methoden behalten die Array-Reihenfolge bei und welche nicht?

Welche LINQ-Methoden behalten die Array-Reihenfolge bei und welche nicht?

Patricia Arquette
Freigeben: 2025-01-25 21:06:12
Original
529 Leute haben es durchsucht

Which LINQ Methods Preserve Array Order, and Which Ones Don't?

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!

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