1、 C# 鍵值對類有如下類:web
一、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鍵值對post
Hashtable 內的每一組對象就是一個DictionaryEntry
例如咱們要循環hashtable
foreach (DictionaryEntry de in myHashtable) {...}
Hashtable就是一個DictionaryEntry的集合spa
2、 KeyValuePair和Hashtable區別線程
一、KeyValuePair是單個的鍵值對對象,而Hashtable是一個集合。orm
二、KeyValuePair用於接收combox選定的值。對象
例如:KeyValuePair<string, object> par = (KeyValuePair<string, object>)shoplistcomboBox.SelectedItem;blog
3、 hashtable 與 dictionary的區別ci
一、單線程程序中推薦使用 Dictionary, 有泛型優點, 且讀取速度較快, 容量利用更充分.
二、多線程程序中推薦使用 Hashtable, 默認的 Hashtable 容許單線程寫入, 多線程讀取, 對 Hashtable 進一步調用 Synchronized() 方法能夠得到徹底線程安全的類型. 而 Dictionary 非線程安全, 必須人爲使用 lock 語句進行保護, 效率大減.
三、Dictionary 有按插入順序排列數據的特性 (注: 但當調用 Remove() 刪除過節點後順序被打亂), 所以在須要體現順序的情境中使用 Dictionary 能得到必定方便.