Ho dichiarato un oggetto tipo dizionario e provo ad aggiungervi alcuni elementi. Ma non posso modificare neanche il valore dell'oggetto. È ragionevole che la chiave non sia modificabile, ma perché non il valore? Grazie.Perché il dizionario .NET <TKey, TValue> è immutabile?
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
}
In altre parole, una collezione attualmente iterata è immutabile – abatishchev
@abatishchev, c'è una differenza tra un oggetto che non dovrebbe essere modificato e un oggetto che non può essere modificato. Il termine _immutabile_ si riferisce a quest'ultimo, mentre un insieme che viene ripetuto è il primo. –