Я застрял со следующим поведением:Брус обновление IEnumerable итерационная переменная
var contracts = result.Select(this.Map);
foreach (var contract in contracts) {
contract.Id = 1;
}
return contracts;
После цикла contract.id
не были обновлены и по-прежнему имеют начальное значение.
var contracts = result.Select(this.Map).ToList();
решил мою проблему, но я не могу понять, почему я не могу обновить свойства итерационной переменной?
Рекомендация в этих случаях: Не используйте 'var', используйте явный тип. – ytoledano
@ytoledano Это совет, который обычно дается, когда человек не понимает, что их переменная была типом, который на самом деле существует. Название их вопроса дает понять, что они знают, что тип - это «IEnumerable», которым он является. Если бы они думали, что это то, чего не было, это было бы признаком того, что «var» их кусало. – Servy