Maison >développement back-end >C++ >Comment puis-je trier une liste en fonction de l'ordre des identifiants dans une autre liste à l'aide de LINQ ?

Comment puis-je trier une liste en fonction de l'ordre des identifiants dans une autre liste à l'aide de LINQ ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-19 11:57:10716parcourir

How Can I Sort a List Based on the Order of IDs in Another List Using LINQ?

Tri d'une liste en fonction des identifiants d'une autre liste à l'aide de LINQ

Dans le développement de logiciels, il est souvent nécessaire de travailler avec plusieurs listes qui ont éléments correspondants. Dans ce cas, l'utilisateur dispose de deux listes : une contenant une série d'identifiants (docIds) et une autre contenant les T éléments correspondants (docs). Le défi est de trier la liste des documents dans le même ordre que la liste des docIds, tout en conservant le type original de la liste des documents (List).

Pour y parvenir en utilisant LINQ (Language Integrated Query), on peut utiliser la méthode d'extension OrderBy. Cette méthode prend une expression lambda qui spécifie comment les éléments de la collection doivent être ordonnés. Dans ce cas précis, l'expression lambda doit accéder à la propriété Id de chaque élément de la liste docs pour la comparer avec l'identifiant correspondant dans la liste docIds.

L'expression LINQ suivante accomplit cette tâche :

docs = docs.OrderBy(d => docIds.IndexOf(d.Id)).ToList();

Cette expression parcourra la liste docs, pour chaque élément, elle appellera la méthode IndexOf sur la liste docIds pour déterminer la position de l'identifiant correspondant. Le résultat est un énumérable ordonné, qui est ensuite affecté à la liste de documents. En utilisant la méthode ToList, l'énumérable ordonné est reconverti en List.

En résumé, cette expression LINQ fournit un moyen simple et efficace de réorganiser une liste d'éléments en fonction des identifiants d'une autre liste, permettant de préserver à la fois l'ordre et le type de la liste originale.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn