The keys in a Dictionary<string, string> are immutable.
For instance, the following code:
Dictionary<string, string> dict = new Dictionary<string, string>();
dict.Add("One", "1");
dict.Add("Two", "2");
var k = dict.First();
k.Key = "Three";
Will throw the following compiler error:
Property or indexer
'System.Collections.Generic.KeyValuePair.Key'
cannot be assigned to -- it is read
only
That being said, a Dictionary<T, T> may have mutable keys if you use a reference type, see:
http://stackoverflow.com/questions/3007296/c-dictionary-and-mutable-keys
(I know, I know, strings are reference types... but the link above will explain...)