Если сделать:Изменяет ли поле элемента в коллекции при повторном запуске коллекции?
foreach(var a in col) {
a.X = 1;
}
Будет ли мой итератор по коллекции становятся недействительными?
Благодаря
Если сделать:Изменяет ли поле элемента в коллекции при повторном запуске коллекции?
foreach(var a in col) {
a.X = 1;
}
Будет ли мой итератор по коллекции становятся недействительными?
Благодаря
Нет, вы можете получить доступ к членам элементов в коллекции. Ваш код действителен.
То, что вы не можете сделать, это изменение самой коллекции (путем удаления или добавления элементов к ней) во время итерации.
Это не должно вызывать проблем. Только если вы попытаетесь изменить содержимое col
, выполнив col.Remove
или col.Add
, я бы предположил, что возникнет проблема.
Спасибо всем :) Я был в сомнении, потому что это предложение в документе: «При внесении изменений в коллекцию, такие как добавление, изменение * * или удаление элементов, перечислитель становится недействительным и его поведение не определено ». – Vando
Я предполагаю, что в этом контексте «модификация» относится к замене элемента коллекции. –