C# 鍵值對類相關 一 C# 鍵值對類有以下類: ① IDictionary<string, Object> idc = new Dictionary<string, object>(); ② KeyValuePair<string, object> par = (KeyValuePair<string, object>)shoplistcomboBox.SelectedItem; ③ Hashtable ht=new Hashtable(); file創建一個Hashtable實例 ht.Add(E,e);添加keyvalue鍵值對 Hashtable 內的每一組對象就是一個DictionaryEntry 例如我們要循環hashtable foreach (DictionaryEntry de in myHashtable) {...} Hashtable就是一個DictionaryEntry的集合 二 KeyValuePair和Hashtable區別 KeyValuePair是單個的鍵值對對象,而Hashtable是一個集合。 KeyValuePair用於接收combox選定的值。 例如:KeyValuePair<string, object> par = (KeyValuePair<string, object>)shoplistcomboBox.SelectedItem; 三 hashtable 與 dictionary的區別 1:單線程程序中推薦使用 Dictionary, 有泛型優勢, 且讀取速度較快, 容量利用更充分. 2:多線程程序中推薦使用 Hashtable, 默認的 Hashtable 允許單線程寫入, 多線程讀取, 對 Hashtable 進一步調用 Synchronized() 方法可以獲得完全線程安全的類型. 而 Dictionary 非線程安全, 必須人為使用 lock 語句進行保護, 效率大減. 3:Dictionary 有按插入順序排列數據的特性 (注: 但當調用 Remove() 刪除過節點后順序被打亂), 因此在需要體現順序的情境中使用 Dictionary 能獲得一定方便.