Utilisez LINQ pour supprimer efficacement les éléments List
LINQ est une puissante technologie de requête de données qui peut filtrer et sélectionner des éléments spécifiques dans une collection. Cependant, lorsqu'il s'agit de collections mutables telles que List
Requête et suppression LINQ
Considérez la requête LINQ suivante :
<code class="language-csharp">var authors = from x in authorsList where x.firstname == "Bob" select x;</code>
Cette requête renvoie une séquence d'objets Author nommés auteurs. Cependant, si vous souhaitez supprimer ces auteurs de la authorList, l'utilisation des auteurs pour la suppression ne mettra pas directement à jour la collection d'origine.
Solution pour supprimer les résultats de requête
Il existe deux stratégies principales pour supprimer les résultats d'une requête de la liste des auteurs :
<code class="language-csharp">authorsList = authorsList.Where(x => x.FirstName != "Bob").ToList();</code>
Cela crée effectivement une nouvelle liste filtrée d'auteurs qui n'inclut pas Bob.
<code class="language-csharp">authorsList.RemoveAll(x => x.FirstName == "Bob");</code>
Cette méthode parcourt la authorsList et supprime tous les éléments qui correspondent au prédicat.
Manière alternative de filtrer plusieurs éléments
Si vous devez supprimer plusieurs éléments spécifiques basés sur un ensemble distinct (par exemple HashSet) :
<code class="language-csharp">var setToRemove = new HashSet<Author>(authors); authorsList.RemoveAll(x => setToRemove.Contains(x));</code>
Cette méthode supprime efficacement tous les auteurs de setToRemove de la authorsList.
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!