Heim > Backend-Entwicklung > C++ > Wie entferne ich Elemente aus einer Liste, während ich in C#iteriere?

Wie entferne ich Elemente aus einer Liste, während ich in C#iteriere?

Linda Hamilton
Freigeben: 2025-01-31 02:08:11
Original
569 Leute haben es durchsucht

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

Entfernen Sie das Listenelement sicher, wenn Iteraten in C#

iteriert Das Ändern der Liste während der Iteration kann zu Problemen führen, z. B. Kopfschmerzen, bei denen die Erfassung geändert wurde; der Aufzählungsvorgang kann möglicherweise nicht abnormal ausgeführt werden. Einige Technologien können jedoch Elemente während der Iteration effektiv entfernen.

Verwendung für die Schleife reverse Iteration

Eine Methode besteht darin, die Liste der für die Loop Reverse Iteration zu verwenden. Dies kann die Indexposition der Zerstörung der Sammlung verhindern:

removeAll -Methode

<code class="language-csharp">for (int i = safePendingList.Count - 1; i >= 0; i--)
{
    // 处理元素
    // safePendingList.RemoveAt(i);
}</code>
Nach dem Login kopieren

Eine andere Wahl besteht darin, die RemoveAll -Methode mit Prädikat zu verwenden, um jedes Element zu überprüfen:

Beispiel

<code class="language-csharp">safePendingList.RemoveAll(item => item.Value == someValue);</code>
Nach dem Login kopieren
Betrachten Sie die folgende Ganzzahlliste:

Vor dem Entfernen:

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

nach der Entfernung:

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

Ausgabe:

<code>1
2
3
4
5
6
7
8
9
10</code>
Nach dem Login kopieren
Dies zeigt, wie Elemente mehr als 5 aus der Liste entfernt werden.

Das obige ist der detaillierte Inhalt vonWie entferne ich Elemente aus einer Liste, während ich in C#iteriere?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage