Maison >développement back-end >C++ >Comment supprimer en toute sécurité les éléments d'une liste tout en itérant en 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.
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:
<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!