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

时间: 2024-08-01 07:39:50

C# 键值对的类型的相关文章

python 将字典的键&amp;值从byte类型转换为str类型

def convert(data): if isinstance(data, bytes): return data.decode('ascii') if isinstance(data, dict): return dict(map(convert, data.items())) if isinstance(data, tuple): return map(convert, data) return data

Redis 常用命令之-----键值命令

欢迎大家加入 459479177QQ群进行交流 键值命令 这里就不介绍方法与描述啦,自己看例子 1.keys 查看key 127.0.0.1:6379> keys * 1) "skey2" 2) "skey1" 3) "name" 4) "zkey1" 127.0.0.1:6379> keys s* 1) "skey2" 2) "skey1" 2.del删除key 127.0

STL模板_multimap_智能指针作为键值

map的键值的类型 -可以是自定的类型(对象.函数指针.智能指针....) -但是有副作用-当自己定义的类型键值无法用系统自己提供的 < 或者 > 进行排序的时候,会出现各种问题 -所以需要自己定义比较器来进行处理 解决: -如果键值是对象类型 -可以自己在类中对 < 或者 > 运算符进行重载 -不需要对==进行重载 -因为元素的排序是根据<,和> 进行比较的 eg: -a > b 则 b <= a; -这边有点疑问..待补充.... class Key{

【求助】因为相同类型的其他实体已具有相同的主键值。在使用 &quot;Attach&quot; 方法或者将实体的状态设置为 &quot;Unchanged&quot; 或 &quot;Modified&quot; 。。。

因为相同类型的其他实体已具有相同的主键值.在使用 "Attach" 方法或者将实体的状态设置为 "Unchanged" 或 "Modified" 时如果图形中的任何实体具有冲突键值,则可能会发生上述行为.这可能是因为某些实体是新的并且尚未接收数据库生成的键值.在此情况下,使用 "Add" 方法或者 "Added" 实体状态跟踪该图形,然后将非新实体的状态相应设置为 "Unchanged"

(转)C#中键值对类型Hashtable与Dictionary比较和相关用法

最近在使用C#中的Hashtable与Dictionary的时候,想知道其区别,通过查找网络相关博客资料,作出下列总结. Hashtable与Dictionary虽然都是作为键值对的载体,但是采用的是不同的数据结构.就像Java中的ArrayList与LinkList,虽然都是实现了List接口作为集合载体,但是其内部结构是不一样的,ArrayList是通过数组实现的,LinkList是通过对象链表实现的. 由于 Hashtable 和 Dictionary 同时存在, 在使用场景上必然存在选择

FAQ:注册表_键值类型

在注册表中,“键值项数据”可分为下面三种类型. 字符串值(REG_SZ) 该值一般用来作为文件描述和硬件标志,可以是字母.数字,也可以是汉字,但它是长度固定的文本字符串,最大长度不能超过255个字符.REG文件中一般表现为:"a"="****". 二进制值(REG_BINARY) 一般情况下,大多数硬件组件信息以二进制数据存储,然后通过十六进制的格式显示在注册表编辑器中.该类型值没有长度限制,可以是任意字节长,REG文件中一般表现为:"a"=&q

angularjs之ng-mode获取lobject类型里的键值

有时候数据库定义的时候,用一个对象来代表某个属性,之后直接访问对象就可以获取全部该对象的属性,但是有时需求访问对象中包含中的键值,引用键值的时候可以直接用.来获取对象的键值,比如 对象points: 获取对象的时候可以直接 $scope.points = data.points; //后台返回数据data 获取对象的键值 $scope.lat = data.points.lat;$scope.lng = data.points.lng; 所以我们要获取当前值进行修改: 页面 <tr ng-rep

前端发键值对类型的list给后端

前端数据格式: {"weather":"1","data":["0","1"]} json格式  数据是list  包含两个键值对   第一个元素是String,String. 第二个元素是String,Array 比如这些数据  用对象params指向这个list 第一步 data:JSON.stringify(params)   //JSON.stringify()  把对象转换为JSON格式 第二步

JDBC学习笔记(6)——获取自动生成的主键值&amp;处理Blob&amp;数据库事务处理

获取数据库自动生成的主键 [孤立的技术是没有价值的],我们这里只是为了了解具体的实现步骤:我们在插入数据的时候,经常会需要获取我们插入的这一行数据对应的主键值. 具体的代码实现: 1 /** 2 * 获取数据库自动生成的主键 3 */ 4 @Test 5 public void testGetKeyValues(){ 6 Connection connection=null; 7 PreparedStatement preparedStatement=null; 8 ResultSet rs=n