Ändern von Listen in foreach
Loops in C#: Best Practices
Eine Liste direkt in einer foreach
-Sufe in C# kann zu unerwartetem Verhalten führen. Während C#/. Net 4.0 und spätere Versionen unter bestimmten Umständen einige Änderungen zulassen (wie Paul Jackson festgestellt), wird dies im Allgemeinen nicht empfohlen. Die inhärente Unveränderlichkeit der Sammlung, die in einer foreach
-Sufe verwendet wird, soll unvorhersehbare Nebenwirkungen verhindern, wie von MSDN.
als temporärer Puffer, sind weniger effizient und weniger elegant. IList
Warum vermeiden Sie es, in ? foreach
zu modifizieren
-Schleife erstellen eine Kopie (oder einen Iterator) der Sammlung. Das Ändern der ursprünglichen Sammlung während des Iterierens kann dazu führen, dass die Schleife Elemente überspringt oder Ausnahmen auslöst. foreach
Die bevorzugte Methode: Verwenden von Loops for
-Schleife eine bessere Kontrolle und Vorhersehbarkeit. Dieser Ansatz manipuliert direkt die Indizes der Liste und vermeidet die Probleme, die mit for
. foreach
verbunden sind
gleichzeitige Sammlungen: Eine Ausnahme
Während gleichzeitige Sammlungen in neueren C# -Versionen Modifikationen innerhalb von Loops ermöglichen, ist dies ein spezieller Fall. Es ist entscheidend zu verstehen, dass diese Ausnahme nur für diese spezifischen Sammlungstypen für den gleichzeitigen Zugriff gilt.
foreach
ist in begrenzten Situationen technisch möglich, dass das Ändern von Listen innerhalb von Loops im Allgemeinen entmutigt wird. Die Verwendung von -Hleiben für Listenmodifikationen bleibt die beste Praxis für die Sicherstellung von Code -Klarheit, Vorhersehbarkeit und Vermeidung unerwarteter Fehler. foreach
Das obige ist der detaillierte Inhalt vonWie ändere ich Listen innerhalb einer „foreach'-Schleife in C# sicher?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!