C# 键值对的类型

Posted 哒少囧Net

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 能获得一定方便.

以上是关于C# 键值对的类型的主要内容,如果未能解决你的问题,请参考以下文章

重温 C# 字典Dictionary类

调试 C# 时为啥不能更改字典键值对的计数?

在c#中,啥叫键/值对?啥叫哈希代码?

ComboBox绑定键值对

如何解析没有分隔符的键值对的字符串?

关于c#中Dictionary的使用