我聲明瞭一個Dictionary類型的對象,並嘗試添加一些項目到它。但我無法修改該物品的價值。鑰匙不可修改是合理的,但爲什麼不能修改?謝謝。爲什麼.NET Dictionary <TKey,TValue>是不可變的?
Dictionary<string, string> dict = new Dictionary<string, string>();
dict.Add("1", "bob");
dict.Add("2", "jack");
dict.Add("3", "wtf");
foreach (string key in dict.Keys)
{
dict[key] = "changed"; //System.InvalidOperationException: Collection was modified
}
換句話說,當前迭代的集合是不可變的 – abatishchev 2010-11-15 10:55:31
@abatishchev,不應修改的對象與無法修改的對象之間存在差異。術語_immutable_指的是後者,而正在迭代的集合是前者。 – 2013-05-21 14:06:35