Heim >Backend-Entwicklung >C++ >Wie entferne ich Elemente aus einer Liste, während ich in C#iteriere?
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.
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:
<code class="language-csharp">for (int i = safePendingList.Count - 1; i >= 0; i--) { // 处理元素 // safePendingList.RemoveAt(i); }</code>
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>Betrachten Sie die folgende Ganzzahlliste:
Vor dem Entfernen:
<code class="language-csharp">var list = new List<int>(Enumerable.Range(1, 10));</code>Ausgabe:
nach der Entfernung:
<code class="language-csharp">Console.WriteLine("移除前:"); list.ForEach(i => Console.WriteLine(i));</code>
Ausgabe:
<code>1 2 3 4 5 6 7 8 9 10</code>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!