Hashtableで定義すると
Hashtable hash = new Hashtable(); hash.Add("foo", "bar"); // 型変換しないと値がObjectで戻ってきて面倒 Trace.WriteLine(hash["foo"].ToString());
Dictionaryで定義すると
Dictionary<String, String> dic = new Dictionary<String, String>(); dic.Add("foo", "bar"); // 型が定義されているのでStringが返る Trace.WriteLine(dic["foo"]);
最初に定義しておけば返り値がちゃんとした型で戻ってくるので、放り込む値の型が最初から決まっているのであればDictionaryを使った方がスマートかもしれないよ、という話。
どちらもforeach()で回せるので、使い勝手は同じだし。