class Program
{
static void Main(string[] args)
{
var dictionary = new Dictionary<string, int>()
{
{"1", 1}, {"2", 2}, {"3", 3}
};
foreach (var s in dictionary.Keys)
{
// Throws the "Collection was modified exception..." on the next iteration
// What up with that?
dictionary[s] = 1;
}
}
}
Я полностью понимаю, почему это исключение вызывается при перечислении списка - кажется разумным ожидать, что во время перечисления структура перечисляемого объекта не изменится. Однако изменилось ли значение словаря значение его структуры? В частности, структура его ключей?