Als ich die Sammlung änderte, iterierte ich durch mit foreach
habe ich eine Ausnahme erhalten. Also bin ich einfach neugierig, wie foreach
(oder die Laufzeitumgebung) dies erkennen. Ist es möglich, dies mit einem allgemeinen Objekt zu tun?
Antwort
Zu viele Anzeigen?Die Sammlung selbst muss dies erkennen. In den Sammlungen der Standardbibliothek wird dies durch eine interne Versionsnummer erreicht, die bei jeder Operation geändert und vom Iterator bei jeder Iteration überprüft wird (d.h. bei jedem Aufruf von MoveNext
prüft er, ob die Versionsnummer die gleiche ist wie bei der Erstellung des Iterators).