StringDictionary
proviene de .NET 1.1 e implementa IEnumerable
Dictionary<string, string>
proviene de .NET 2.0 e implementa IDictionary<TKey, TValue>,IEnumerable<KeyValuePair<TKey, TValue>>, IEnumerable
IgnoreCase solo está configurado para Key in StringDictionary
Dictionary<string, string>
es bueno para LINQ
Dictionary<string, string> dictionary = new Dictionary<string, string>();
dictionary.Add("ITEM-1", "VALUE-1");
var item1 = dictionary["item-1"];
var itemEmpty = dictionary["item-9"];
StringDictionary stringDictionary = new StringDictionary();
stringDictionary.Add("ITEM-1", "VALUE-1");
var item1String = stringDictionary["item-1"];
var itemEmptystring = stringDictionary["item-9"];
bool isKey = stringDictionary.ContainsValue("VALUE-1");
bool isValue = stringDictionary.ContainsValue("value-1");
Dictionary<string,string>
para todo el código nuevo (a menos que necesite apuntar a 1.1).