Maison > développement back-end > C++ > Comment supprimer en toute sécurité les éléments d'une liste tout en itérant en C #?

Comment supprimer en toute sécurité les éléments d'une liste tout en itérant en C #?

Linda Hamilton
Libérer: 2025-01-31 02:08:11
original
569 Les gens l'ont consulté

How to Safely Remove Elements from a List While Iterating in C#?

Supprimez l'élément de liste en toute sécurité lorsque les itérés dans C #

Modification de la liste pendant l'itération peut causer des problèmes, tels qu'un mal de tête que la "collection a été modifiée; l'opération d'énumération peut ne pas être exécutée" anormale. Cependant, certaines technologies peuvent éliminer efficacement les éléments pendant l'itération.

Utilisation pour l'itération inverse de la boucle

Une méthode consiste à utiliser la liste d'itération inverse de la boucle pour la boucle. Cela peut empêcher la position d'index de détruire la collection:

Méthode de removeAl

<code class="language-csharp">for (int i = safePendingList.Count - 1; i >= 0; i--)
{
    // 处理元素
    // safePendingList.RemoveAt(i);
}</code>
Copier après la connexion

Un autre choix consiste à utiliser la méthode RemoveALL avec un prédicat pour vérifier chaque élément:

Exemple

<code class="language-csharp">safePendingList.RemoveAll(item => item.Value == someValue);</code>
Copier après la connexion
Considérez la liste des entiers suivants:

avant le retrait:

<code class="language-csharp">var list = new List<int>(Enumerable.Range(1, 10));</code>
Copier après la connexion
Sortie:

après le retrait:

<code class="language-csharp">Console.WriteLine("移除前:");
list.ForEach(i => Console.WriteLine(i));</code>
Copier après la connexion

Sortie:

<code>1
2
3
4
5
6
7
8
9
10</code>
Copier après la connexion
Cela montre comment supprimer les éléments supérieurs à 5 de la liste.

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 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