Tri d'une liste à partir d'une autre liste des Id

J'ai une liste avec des identifiants comme ceci:

List<long> docIds = new List<long>() { 6, 1, 4, 7, 2 };

Plus, j'ai une autre liste de <T> éléments, qui sont représentés par les id décrit ci-dessus.

List<T> docs = GetDocsFromDb(...)

J'ai besoin de garder le même ordre dans les deux collections, de sorte que les éléments en List<T> doit être dans la même position que dans le premier (en raison de moteur de recherche de notation raisons). Et ce processus ne peut pas être fait dans le GetDocsFromDb() fonction.

Si nécessaire, il est possible de modifier la deuxième liste dans une autre structure (Dictionary<long, T> par exemple), mais je préfère ne pas la modifier.

Est-il un moyen simple et efficace de faire cela "ordenation selon certains Identifiants" avec LINQ?

  • êtes-vous assuré que chaque docId se produit exactement une fois dans docs, quels sont les biens tiendra le Id ou un sélecteur de Func<T, long> être nécessaire?
  • La première liste de représenter une "liste principale"? Un autre termes, la seconde liste sera un sous-ensemble représentant une partie (ou la totalité) de la première liste?
InformationsquelleAutor Borja López | 2013-03-07