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