Deklarowałem obiekt typu Dictionary i próbowałem dodać do niego niektóre elementy. Ale nie mogę zmienić nawet wartości przedmiotu. Jest uzasadnione, że klucz nie powinien być modyfikowalny, ale dlaczego nie wartość? Dzięki.Dlaczego słownik .NET <TKey, TValue> jest niezmienny?
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
}
Innymi słowy, kolekcja obecnie iterowana jest niezmienna – abatishchev
@abatishchev, istnieje różnica między obiektem, który nie powinien być modyfikowany, a obiektem, który nie może być modyfikowany. Termin _immutable_ odnosi się do tego ostatniego, podczas gdy zbiór, który jest iterowany, jest pierwszym. –