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
Linda Hamiltonoriginal
2025-01-31 02:08:11525parcourir

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>

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>
Considérez la liste des entiers suivants:

avant le retrait:

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

après le retrait:

<code class="language-csharp">Console.WriteLine("移除前:");
list.ForEach(i => Console.WriteLine(i));</code>

Sortie:

<code>1
2
3
4
5
6
7
8
9
10</code>
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:
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