Sortieren Sie eine Liste aus anderen Listen-IDs
Habe ich eine Liste mit einigen Bezeichner wie diese:
List<long> docIds = new List<long>() { 6, 1, 4, 7, 2 };
Außerdem habe ich eine andere Liste von <T>
Positionen, die vertreten werden durch die ids wie oben beschrieben.
List<T> docs = GetDocsFromDb(...)
Ich brauche, um die gleiche Reihenfolge in beiden Sammlungen, so dass die Elemente in List<T>
müssen in der gleichen position, als in der ersten (durch Suchmaschinen-scoring-Gründen). Und dieser Prozess kann nicht getan werden in der GetDocsFromDb()
Funktion.
Wenn nötig, ist es möglich, ändern Sie die zweite Liste in eine andere Struktur (Dictionary<long, T>
zum Beispiel), aber ich würde es vorziehen, nicht zu ändern.
Gibt es eine einfache und effiziente Möglichkeit, dies zu tun "ordenation je einige IDs" mit LINQ?
docId
tritt genau einmal in docs
, welche Eigenschaft halten Sie die Id
oder wird ein Selektor Func<T, lang - >
werden benötigt? InformationsquelleAutor der Frage Borja López | 2013-03-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
InformationsquelleAutor der Antwort Denys Denysenko
Da Sie nicht angeben
T
,Ist eine generische Erweiterung für das, was Sie wollen.
Könnten Sie die Erweiterung, wie dies vielleicht
Einer sichereren version könnte
die Arbeit, wenn
source
nicht zip genau mitorder
.InformationsquelleAutor der Antwort Jodrell
Eine einfache Methode ist die zip mit der Reihenfolge:
InformationsquelleAutor der Antwort Albin Sunnanbo