Maison > développement back-end > C++ > Comment trier une liste d'objets en fonction des identifiants d'une liste distincte ?

Comment trier une liste d'objets en fonction des identifiants d'une liste distincte ?

DDD
Libérer: 2025-01-19 12:16:09
original
977 Les gens l'ont consulté

How to Sort a List of Objects Based on IDs from a Separate List?

Trier une liste d'objets en fonction d'un identifiant dans une autre liste

Dans certains cas, vous devrez peut-être trier une liste d'objets en fonction de leurs identifiants stockés dans une liste distincte. Considérez ce qui suit :

Vous avez un docIds nommé List<long> avec les valeurs suivantes : { 6, 1, 4, 7, 2 }. De plus, vous disposez d'un docs nommé List<T> qui stocke l'objet représenté par l'ID dans le docIds.

Votre objectif est de maintenir la cohérence dans l’ordre des éléments dans les deux listes. Cela signifie que l'objet dans List<T> doit occuper la même position que son ID correspondant dans List<long>, par exemple, l'objet avec l'ID 1 dans docs doit être à l'index 1.

Pour réaliser ce tri sans modifier List<T> vous pouvez utiliser LINQ comme suit :

<code class="language-csharp">docs = docs.OrderBy(d => docIds.IndexOf(d.Id)).ToList();</code>
Copier après la connexion

Cette expression LINQ utilise d'abord IndexOf pour déterminer l'index de chaque ID d'objet dans docIds. Il utilise ensuite cet index comme clé de tri, alignant efficacement les objets dans List<T> avec leurs identifiants dans List<long>.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal