foreach
Listen innerhalb von Schleifen in C#In C#/.NET 4.0 können aufzählbare Objekte während einer foreach
-Schleife geändert werden, ohne dass Ausnahmen auftreten. Paul Jacksons Blogbeitrag geht ausführlich darauf ein.
Es stellt sich jedoch häufig die Frage: Wie lässt sich eine Liste innerhalb einer foreach
-Schleife am besten ändern, insbesondere in einem verschachtelten foreach
-Szenario?
Traditionell wird IList
oft als Cache oder Puffer verwendet, um Änderungen zu akkumulieren, bis die äußere foreach
-Schleife endet. Aber gibt es eine bessere Alternative?
Es ist wichtig zu beachten, dass die Sammlung, die in der foreach
-Schleife wiederholt wird, vom Design her unveränderlich ist. Wie in der MSDN-Dokumentation angegeben, ist foreach
für den Zugriff auf Daten und nicht für die Änderung der Quellsammlung konzipiert, um unvorhersehbare Nebenwirkungen zu verhindern.
Wenn Sie Elemente zur Quellsammlung hinzufügen oder daraus entfernen müssen, wird empfohlen, stattdessen eine for
-Schleife zu verwenden. Dies gewährleistet vorhersehbare und kontrollierte Änderungen an der Sammlung.
Der von Poko verlinkte Blog-Beitrag legt nahe, dass diese Beschränkung möglicherweise nicht für gleichzeitige Sammlungen gilt, die in C#/.NET 4.0 eingeführt wurden.
Das obige ist der detaillierte Inhalt vonWie modifizieren Sie Listen in C#sicher in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!