In vielen Programmierszenarien werden Sie möglicherweise mit zwei Listen konfrontiert: eine mit Bezeichnern und eine andere mit zugehörigen Elementen mit diesen Identifikatoren. Die Herausforderung entsteht, wenn Sie in beiden Listen die gleiche Reihenfolge der Elemente beibehalten müssen. Dieser Artikel bietet eine einfache und effiziente Lösung mit LINQ zur Behebung dieses Problems.
Angenommen, Sie haben eine Liste mit Bezeichnern:
List<long> docIds = new List<long>() { 6, 1, 4, 7, 2 };
Sie haben auch eine Liste mit Elementen, die durch die IDs in dargestellt werden docIds:
List<T> docs = GetDocsFromDb(...);
Ihr Ziel ist es, die Dokumentenliste basierend auf den entsprechenden Kennungen in aufsteigend neu zu ordnen docIds. Die Reihenfolge der Elemente in beiden Listen sollte identisch sein.
Der folgende LINQ-Ausdruck löst dieses Problem:
docs = docs.OrderBy(d => docIds.IndexOf(d.Id)).ToList();
Erklärung:
Diese Methode ordnet die Dokumentenliste basierend auf den Bezeichnern in docIds effizient neu. Stellen Sie sicher, dass die Elemente in beiden Listen in derselben Reihenfolge sind.
Das obige ist der detaillierte Inhalt vonWie sortiere ich eine Liste anhand der Reihenfolge der Bezeichner in einer anderen Liste mithilfe von LINQ?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!