Maison >développement back-end >C++ >Comment supprimer efficacement des éléments d'une liste qui existent dans une autre ?
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!