KeyValuePair是单个的键值对对象。KeyValuePair可用于接收combox选定的值。

例如:KeyValuePair<string, object> par = (KeyValuePair<string, object>)shoplistcomboBox.SelectedItem;

单线程程序中推荐使用 Dictionary, 有泛型优势, 且读取速度较快, 容量利用更充分。

Hashtable是一个集合。在多线程程序中推荐使用 Hashtable, 默认的 Hashtable 允许单线程写入, 多线程读取, 对 Hashtable 进一步调用 Synchronized() 方法可以获得完全线程安全的类型. 而 Dictionary 非线程安全, 必须人为使用 lock 语句进行保护, 效率大减。

1.键值对Dictionary:Dictionary<string,string>键值对的使用

public void CreateDictionary()
{Dictionary<string,string> dic=new Dictionary<string,string>();//添加dic.Add("1","one");dic.Add("2","two");//取值string getone=dic["1"];
}

2.键值对KeyValuePair:KeyValuePair<string,string>

因为KeyValuePair是单个的键值对对象,可以用来遍历Dictionary字典,或保存combox选择的值。

public void usekeyvaluepair()
{foreach (KeyValuePair<string, string> item in dic){string a = item.Key;string b = item.Value;}
}

3.哈希集合Hashtable

Hashtable是非泛型集合,所以在检索和存储值类型时通常会发生装箱与拆箱的操作。 

public void CreateHashtable()
{Hashtable hs = new Hashtable();hs.Add(1,"one");hs.Add("2","two");string a=hs[1].ToString();string b = hs["2"].ToString();
}

Hashtable集合补充:遍历集合,可使用DictionaryEntry类(定义可设置或检索的键值对)

Hashtable hs = new Hashtable();
hs.Add(1, "one");
hs.Add("2", "two");foreach (DictionaryEntry item in hs)
{string a = item.Key.ToString();string b = item.Value.ToString();
}

使用foreach遍历是不能修改值的,只能读取值,迭代变量相当于一个局部只读变量。可使用for循环修改。

转载于:https://www.cnblogs.com/yxys/p/5205891.html

键值对Dictionary、KeyValuePair、Hashtable 简单使用。相关推荐

  1. c#集合_键值对Dictionary SortedList

    前言: 在 C# 中,键值对是一种常见的数据结构,可以使用不同的集合类实现.以下是常用的键值对集合类: Dictionary<TKey, TValue>:一种使用哈希表实现的键值对集合.它 ...

  2. Java心得--键值、枚举器

    1. 集(Set):和数学上的"集合"概念相对应,是最简单的一种集合. Set集合中不区分元素的顺序,因此也就不记录元素的加入顺序. Set集合中不包含重复元素,即任意的两个元素e ...

  3. java用来存储键值的容器是_Java容器 - osc_y0caef0i的个人空间 - OSCHINA - 中文开源技术交流社区...

    问题及答案来源自<Java程序员面试笔试宝典>第四章 Java基础知识 4.9容器 1.Java Collections框架是什么? Java Collections框架中包含了大量集合接 ...

  4. C#基础 Dictionary KeyValuePair 键值对的遍历并输出

    KeyValuePair 和 Dictionary 的关系: 1.KeyValuePair      a.KeyValuePair 是一个结构体(struct):     b.KeyValuePair ...

  5. C# Dictionary 获取键值对 KeyValuePair

    1.KeyValuePair      a.KeyValuePair 是一个结构体(struct):     b.KeyValuePair 只包含一个Key.Value的键值对. 2.Dictiona ...

  6. 一个简单的键值存储微服务

    目录 介绍 我需要的 我不需要的东西 Redis 应用程序接口 实现 助手类 Bucket类 Buckets类 测试 创建存储桶 更新存储桶 列出存储桶 获取桶本身 删除桶 结论 下载源代码 - 4. ...

  7. 红黑树 键值_查找(一)史上最简单清晰的红黑树讲解

    http://blog.csdn.net/yang_yulei/article/details/26066409 查找(一) 我们使用符号表这个词来描述一张抽象的表格,我们会将信息(值)存储在其中,然 ...

  8. Hashtable 中的键值修改问题

    Hashtable 允许我们通过键来寻找保存在其中的值,还可以通过 ContainsKey 方法来查看是否在 Hashtable 中有对应的键,但是,在使用中还是有一些需要注意的地方. 一个同学写了这 ...

  9. C#中通过单例模式以及Dictionary实现键值对的映射,通过key获取value

    场景 有时候我们获取的是key,比如获取的是12345这样的数字,要实现对应的value比如是中文的状态的映射. 注: 博客主页: https://blog.csdn.net/badao_liuman ...

最新文章

  1. C# 获得系统AppData路径
  2. 美国三院院士「迈克尔•乔丹」长文论述:为什么说「人工智能革命」尚未发生...
  3. java集合代码_Java-集合(示例代码)
  4. Partition List
  5. 计算机网络之物理层:1、接口特性、同步异步、串行并行、双工
  6. 【Linux】解决Wesnoth中文乱码问题
  7. EDMA - DMA QDMA
  8. Kettle 使用JS加密解密
  9. SD卡、TF卡读写速率测试
  10. 解决WPS2000非正常删除后的重安装问题(转)
  11. 神秘消失的Windows 9,如今真被人做出来了
  12. [UE4]使用UMG的用户界面,设置UMG的模块依赖性(C++)
  13. 极值点、驻点、拐点、关系点
  14. git gc error: failed to run repack message
  15. 海底捞:服务喧宾夺主,盈利不见起色
  16. 对文件进行的操作命令
  17. asp毕业设计——基于asp+access的教师档案管理系统设计与实现(毕业论文+程序源码)——教师档案管理系统
  18. mysql8.0字符集排序规则_MySQL 的字符集与排序规则
  19. 这样的成品app直播源码到手一定会后悔
  20. 转型产品经理需要考NPDP吗?

热门文章

  1. 一对一直播脚本,工作原理,效果实践
  2. (CoRL2020)DIRL: Domain-Invariant Representation Learning Approach for Sim-to-Real Transfer 论文笔记
  3. 仅需10%参数量即超越SOTA!浙大、字节、港中文联合提出「类别级位姿估计」任务新框架|CoRL2022...
  4. node.js面试题
  5. 面向对象有哪些特性?
  6. 领域驱动设计 比较经典的书籍
  7. python数据量太大如何解决_Python 如何处理大文件
  8. 百万剪辑师是怎么炼成的?几大剪辑逻辑你知道吗?
  9. IOS 模拟器显示不全问题
  10. 三七互娱《斗罗大陆:魂师对决》上线,Network Kit助力玩家即刻畅玩