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

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

DDD
DDDoriginal
2025-01-13 14:21:44543parcourir

How Can I Efficiently Remove Items from One List That Exist in Another?

Supprimer un élément d'une autre liste

Question :

Comment parcourir une liste générique d'éléments et les supprimer d'une autre liste d'éléments ?

Scène :

Considérons l'exemple hypothétique suivant :

<code>List<汽车> list1 = GetTheList();
List<汽车> list2 = GetSomeOtherList();</code>

L'objectif est d'utiliser une boucle foreach pour parcourir la liste1 et supprimer tous les éléments également présents dans la liste2. Cependant, la boucle foreach ne fournit pas de méthodes basées sur des index.

Réponse :

Pour y parvenir vous pouvez utiliser la méthode Except :

<code>List<汽车> result = list2.Except(list1).ToList();</code>

Cela créera un nouveau résultat de liste contenant des éléments de la liste2 qui ne sont pas présents dans la liste1. La méthode Except ne modifie pas la liste d'origine.

Optimisation :

Pour optimiser davantage votre code, vous pouvez éliminer le besoin de variables temporaires :

<code>List<汽车> result = GetSomeOtherList().Except(GetTheList()).ToList();</code>

Il est important de noter que Except renvoie une nouvelle liste contenant les différences calculées, il ne modifie donc ni list1 ni list2.

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