Из for в foreach
string[] wNames = ...
for (int i = 0; i < wNames.Length; i++)
{
wNames[i] = wNames[i].Substring(wNames[i].LastIndexOf(':') + 1).Trim();
}
Как данный пример перевести в foreach ?
У меня не получается, пишет что невозможно присвоить wNames[i] =
Ответы (2 шт):
Автор решения: Fyodor
→ Ссылка
Когда ты используешь цикл foreach, ты не получаешь доступ к адресу ячеек массива, а извлекаешь только значения.
Для того чтобы изменять данные в массиве стоит использовать обычный цикл for. Если ты нуждаешься только в чтении данных из массива, то можно использовать for или foreach.
Автор решения: CrazyElf
→ Ссылка
С использованием Linq будет выглядеть практически так же на вид, только вообще без цикла и без индекса, потому что обрабатываются сразу все элементы массива:
wNames = wNames.Select(x => x.Substring(x.LastIndexOf(':') + 1).Trim()).ToArray();
А с помощью foreach поменять не получится, ну, это уже объяснили.