一 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 能獲得一定方便.