Heim >Backend-Entwicklung >C++ >Wie sortiere ich eine Liste basierend auf der Reihenfolge der IDs in einer anderen Liste?
Neuordnung einer Liste mithilfe einer Referenz-ID-Liste
Dieses Beispiel zeigt, wie Sie eine Liste von Elementen (z. B. Dokumente) neu anordnen, um sie an die Reihenfolge ihrer IDs in einer separaten Referenzliste anzupassen. Dies ist eine häufige Aufgabe, wenn Sie die Konsistenz zwischen zwei verwandten Datensätzen aufrechterhalten müssen. LINQ bietet eine übersichtliche Lösung.
Der Schlüssel besteht darin, die Methode OrderBy
in Verbindung mit einer Indexsuche zu verwenden. Wir suchen den Index der ID jedes Elements in der Referenz-ID-Liste und verwenden diesen Index, um die sortierte Reihenfolge zu bestimmen.
Hier ist der Code:
<code class="language-csharp">docs = docs.OrderBy(d => docIds.IndexOf(d.Id)).ToList();</code>
Dieses Code-Snippet ordnet die docs
-Liste effizient neu an, um die durch die docIds
-Liste angegebene Reihenfolge widerzuspiegeln. Die IndexOf
-Methode ermittelt die Position jedes d.Id
innerhalb von docIds
und OrderBy
verwendet diese Indizes zum Sortieren. Das abschließende .ToList()
wandelt das geordnete Ergebnis wieder in eine Liste um. Dadurch wird sichergestellt, dass die Reihenfolge der Elemente in docs
nun direkt der Reihenfolge der IDs in docIds
entspricht.
Das obige ist der detaillierte Inhalt vonWie sortiere ich eine Liste basierend auf der Reihenfolge der IDs in einer anderen Liste?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!