He declarado un objeto de tipo Diccionario e intento agregar algunos elementos en él. Pero no puedo modificar ni siquiera el valor del artículo. Es razonable que la clave no sea modificable, pero ¿por qué no el valor? Gracias.¿Por qué el diccionario .NET <TKey, TValue> es inmutable?
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
}
En otras palabras, una colección actualmente iterada es inmutable – abatishchev
@abatishchev, hay una diferencia entre un objeto que no se debe modificar y un objeto que no se puede modificar. El término _immutable_ se refiere a este último, mientras que una colección que se está iterando es la primera. –