Heim >Backend-Entwicklung >C++ >Wie sortiere ich eine Liste von Objekten basierend auf IDs aus einer separaten Liste?

Wie sortiere ich eine Liste von Objekten basierend auf IDs aus einer separaten Liste?

DDD
DDDOriginal
2025-01-19 12:16:091010Durchsuche

How to Sort a List of Objects Based on IDs from a Separate List?

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!

Stellungnahme:
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