Maison >développement back-end >C++ >Comment trier une liste en fonction de l'ordre des identifiants dans une autre liste à l'aide de LINQ ?
Dans de nombreux scénarios de programmation, vous pouvez vous retrouver avec deux listes : une contenant des identifiants et une autre contenant des éléments associés avec ces identifiants. Le défi se pose lorsque vous devez conserver le même ordre des éléments dans les deux listes. Cet article fournit une solution simple et efficace utilisant LINQ pour résoudre ce problème.
Supposons que vous ayez une liste d'identifiants :
List<long> docIds = new List<long>() { 6, 1, 4, 7, 2 };
Vous disposez également d'une liste d'éléments représentés par les identifiants dans docIds :
List<T> docs = GetDocsFromDb(...);
Votre objectif est de réorganiser la liste des documents par ordre croissant en fonction des identifiants correspondants dans docIds. L'ordre des éléments dans les deux listes doit être identique.
L'expression LINQ suivante résout ce problème :
docs = docs.OrderBy(d => docIds.IndexOf(d.Id)).ToList();
Explication :
Cette méthode réorganise efficacement la liste des documents en fonction des identifiants dans docIds, garantissant que les éléments des deux listes sont dans le même ordre.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!