Heim > Backend-Entwicklung > C++ > Wie modifizieren Sie Listen in C#sicher in C#?

Wie modifizieren Sie Listen in C#sicher in C#?

Susan Sarandon
Freigeben: 2025-01-27 13:21:10
Original
795 Leute haben es durchsucht

How to Safely Modify Lists Inside Nested `foreach` Loops in C#?

Sicheres Ändern von foreachListen 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?

Antworten

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!

Quelle:php.cn
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