Мне было просто интересно: следующий код не будет компилироваться, потому что мы не можем изменить переменную итерации foreach:
foreach (var item in MyObjectList)
{
item = Value;
}
Но следующее будет компилироваться и запускаться:
foreach (var item in MyObjectList)
{
item.Value = Value;
}
Почему первый недопустимый, тогда как второй может сделать то же самое внизу (я искал правильное английское выражение для этого, но я его не помню. Под...? ^^)