Heim >Backend-Entwicklung >C++ >Wie sortiere ich eine Liste von Objekten basierend auf IDs aus einer separaten Liste?
Sortieren Sie eine Liste von Objekten basierend auf einer ID in einer anderen Liste
In einigen Fällen müssen Sie möglicherweise eine Liste von Objekten basierend auf ihren in einer separaten Liste gespeicherten IDs sortieren. Bedenken Sie Folgendes:
Sie haben ein docIds
namens List<long>
mit den folgenden Werten: { 6, 1, 4, 7, 2 }. Darüber hinaus verfügen Sie über ein docs
mit dem Namen List<T>
, das das durch die ID dargestellte Objekt im docIds
speichert.
Ihr Ziel ist es, die Reihenfolge der Elemente in beiden Listen konsistent zu halten. Das bedeutet, dass das Objekt in List<T>
die gleiche Position einnehmen muss wie seine entsprechende ID in List<long>
, zum Beispiel sollte das Objekt mit der ID 1 in docs
am Index 1 stehen.
Um diese Sortierung ohne Änderung von List<T>
zu erreichen, können Sie LINQ wie folgt verwenden:
<code class="language-csharp">docs = docs.OrderBy(d => docIds.IndexOf(d.Id)).ToList();</code>
Dieser LINQ-Ausdruck verwendet zunächst IndexOf
, um den Index jeder Objekt-ID in docIds
zu bestimmen. Anschließend wird dieser Index als Sortierschlüssel verwendet, wodurch die Objekte in List<T>
effektiv an ihren IDs in List<long>
ausgerichtet werden.
Das obige ist der detaillierte Inhalt vonWie sortiere ich eine Liste von Objekten basierend auf IDs aus einer separaten Liste?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!