Maison >développement back-end >C++ >Comment supprimer efficacement des éléments d'une liste qui existent dans une autre ?

Comment supprimer efficacement des éléments d'une liste qui existent dans une autre ?

DDD
DDDoriginal
2025-01-13 14:17:42650parcourir

How to Efficiently Remove Elements from One List That Exist in Another?

Comment supprimer un élément d'une liste contenu dans une autre liste

Supposons que vous ayez deux listes, list1 et list2, et que vous souhaitiez supprimer tous les éléments de la liste1 qui sont également présents dans la liste2. Utiliser une boucle foreach pour parcourir list1 n'est pas suffisant car elle n'est pas basée sur un index.

Solution : Utiliser la méthode Sauf

.NET Framework fournit la méthode Except, qui renvoie une nouvelle liste contenant des éléments de la première liste qui ne sont pas présents dans la deuxième liste. Il prend deux listes comme paramètres et opère élément par élément.

Pour utiliser Except, vous écrivez le code suivant :

<code class="language-csharp">List<car> list1 = GetTheList();
List<car> list2 = GetSomeOtherList();
List<car> result = list2.Except(list1).ToList();</code>

La liste de résultats générée ne contiendra que les éléments de la liste2 qui ne sont pas dans la liste1.

Remarque : La méthode Except ne modifie pas la liste d'origine. Il crée une nouvelle liste contenant les résultats.

Syntaxe simplifiée

Vous pouvez simplifier davantage le code ci-dessus en utilisant le chaînage de méthodes :

<code class="language-csharp">List<car> result = GetSomeOtherList().Except(GetTheList()).ToList();</code>

Ce code obtient le même résultat sans utiliser de variables temporaires.

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