Я понимаю, что вы не можете перебирать словарь в C # и редактировать базовый словарь, как в следующем примере:
Dictionary<Resource, double> totalCost = new Dictionary<Resource, double>();
// Populate the Dictionary in here - (not showing code).
foreach (Resource resource in totalCost.Keys)
{
totalCost[resource] = 5;
}
Один из способов исправить это - создать список, поддерживаемый ключами словаря, например:
Dictionary<Resource, double> totalCost = new Dictionary<Resource, double>();
// Populate the Dictionary in here - (not showing code).
foreach (Resource resource in new List(totalCost.Keys))
{
totalCost[resource] = 5;
}
Поскольку я не редактирую сами ключи, есть ли причина, по которой этого не следует делать, или что неправильно выбирать это в качестве решения. (Я понимаю, что если бы я редактировал эти клавиши, это могло бы вызвать много проблем.)
Спасибо.
Редактировать: Исправлен мой пример кода. Извините за это.