Maison > développement back-end > C++ > Comment puis-je supprimer efficacement des éléments d'une liste à l'aide de LINQ ?

Comment puis-je supprimer efficacement des éléments d'une liste à l'aide de LINQ ?

Mary-Kate Olsen
Libérer: 2025-01-24 03:41:13
original
415 Les gens l'ont consulté

How Can I Efficiently Remove Elements from a List Using LINQ?

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, les modifications ultérieures basées sur les résultats de la requête doivent être traitées avec prudence.

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>
Copier après la connexion

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 :

  1. Exclure des éléments de la requête : Pour éviter de devoir les supprimer ultérieurement, vous pouvez modifier la requête pour exclure les éléments indésirables :
<code class="language-csharp">authorsList = authorsList.Where(x => x.FirstName != "Bob").ToList();</code>
Copier après la connexion

Cela crée effectivement une nouvelle liste filtrée d'auteurs qui n'inclut pas Bob.

  1. Utiliser RemoveAll : Si vous avez déjà exécuté la requête et devez supprimer les résultats de authorsList, vous pouvez utiliser la méthode RemoveAll :
<code class="language-csharp">authorsList.RemoveAll(x => x.FirstName == "Bob");</code>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal