Supprimer efficacement des éléments d'une liste présents dans une autre (C#)
De nombreuses tâches de programmation nécessitent de supprimer des éléments d'une liste qui apparaissent également dans une deuxième liste. Cet article présente deux méthodes efficaces en C# pour y parvenir.
Tirer parti de la Except
méthode de LINQ
LINQ (Language Integrated Query) propose une solution concise utilisant la méthode Except
. Cette méthode calcule la différence définie entre deux listes, renvoyant une nouvelle liste contenant uniquement des éléments uniques à la première liste. Surtout, cette approche évite de modifier les listes originales.
Voici un exemple illustrant l'utilisation de Except
:
<code class="language-csharp">List<car> list1 = GetTheList(); List<car> list2 = GetSomeOtherList(); List<car> result = list2.Except(list1).ToList();</code>
Cet extrait de code génère result
, une nouvelle liste comprenant des éléments de list2
absents dans list1
. La conversion ToList()
est nécessaire car Except
renvoie un IEnumerable
au lieu d'un List
.
Alternative : construire directement une nouvelle liste
Une approche plus rationalisée consiste à créer directement une nouvelle liste contenant uniquement les éléments souhaités :
<code class="language-csharp">List<car> result = GetSomeOtherList().Except(GetTheList()).ToList();</code>
Cela permet d'obtenir le même résultat que l'exemple précédent mais sans avoir besoin d'une variable temporaire.
Considération importante :
Les deux méthodes présentées ci-dessus produisent une nouvelle liste contenant les éléments filtrés. Les listes originales (list1
et list2
) restent intactes.
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!