Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > .NET для новичков > При переборе массива не дает менять элементы |
Автор: Suppir 12.8.2011, 15:48 | ||
Добрый день! Нужно пробежаться по массиву arr и сделать замены в его элементах. Пишу:
Мне в ответ: Присвоение значений для "line" невозможно, так как он "переменная итерации foreach" (CS1656) Как по-простому сделать перебор массива с модификацией элементов? |
Автор: YurIOs 12.8.2011, 16:01 | ||
Присваивать новое значение бежучей переменной нельзя. Здесь не обойтись без цыкла фор
|
Автор: Suppir 12.8.2011, 16:18 |
Понятно, спасибо. я думал, покрасивей можно ![]() |
Автор: ДобренькийПапаша 13.8.2011, 07:18 | ||
Можно обойтись без цикла for.
|
Автор: WarHog 13.8.2011, 10:07 |
Нельзя. Чем этот пример отличается от примера TC? точно также идет попытка присвоения значения итерационной переменной. |
Автор: KelTron 13.8.2011, 20:22 | ||
Можно и покрасивей:
|
Автор: WarHog 14.8.2011, 16:02 | ||
На выходе Error 1 Cannot assign to 'line' because it is a 'foreach iteration variable' |
Автор: wester 14.8.2011, 19:24 |
ДобренькийПапаша, и чем отличается ? тем что создаем ненужный массив в foreach ? Хоть бы проверил перед тем как написать сообщение. |
Автор: ДобренькийПапаша 17.8.2011, 09:38 | ||
Ойёёёё, вы меняете сам итератор. Прошу прощения. Конечно, я не прав. Но, уж извините, до такого я бы не додумался сам (менять непосредственно сам итератор в цикле). Да уж, жесткач :-D Фу, ну и бред у меня в голове. Короче, вот мой случай:
Без ToArray() будет ошибка))) |