博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
遍历Dictionary<K,V>的两种方式
阅读量:7010 次
发布时间:2019-06-28

本文共 692 字,大约阅读时间需要 2 分钟。

Dictionary<string,int> things = new Dictionary<string,int>();

things.Add(........);

things.Add(........);

 

 

第一种方式:可以使用Keys和values属性迭代集合中的键和值:

foreach(string key in things.Keys)

{

//  ......

}

foreach(int value in things.Values)

{

//....

}

第二种方式:还可以迭代集合中的各个项,把每个项作为一个 KeyValuePair<K,V>实例来获取。

foreach(KeyValuePair<string,int> thing in things)

{

 Console.WriteLine("{0} = {1}",thing.Key,thing.Value);

}

 

另外关于Dictionary<K,V>,的key是不能重复的,如果添加相同的key就会抛出 ArgumentException异常。

但可能有这样的一个应用:key作用一个商品名,或者姓名,是不区分大小写的(应该当成同一个商品或者人物),但我们作为Key

加进去是不是抛异常的,但这却违反了我们的业务逻辑概念(我们的名字或商品名等是不区别大小写,即大小写不同的名字应该当成相同的key)

解决方法:在new  dictionary 时,可以把  IComparer<k> 接口传递给构造函数。我们可以在IComparer<K>接口中,我们比较每个名字(比如转化为小写再比较)。

这样就可以了。

转载地址:http://mqvtl.baihongyu.com/

你可能感兴趣的文章
关系运算图模板
查看>>
Java中的多线程,线程池
查看>>
发布系统背景和saltstack的基本操作
查看>>
软件下载站
查看>>
appium - 连接设备
查看>>
C#获取一个文件的相关信息
查看>>
linux驱动系列之文件压缩解压小节(转)
查看>>
POJ 1180 斜率优化DP(单调队列)
查看>>
Zend Studio 12 生成 WSDL
查看>>
重新学struct,边界对齐,声明……与Union的区别
查看>>
Centos6.8防火墙配置
查看>>
JAVA学习心得
查看>>
【夯实Mysql基础】记一次mysql语句的优化过程
查看>>
VBPR: Visual Bayesian Personalized Ranking from Implicit Feedback-AAAI2016 -20160422
查看>>
servlet injection analysis
查看>>
RNN 与 LSTM 的应用
查看>>
Linux服务器性能查看分析调优
查看>>
微信支付技术解决方案
查看>>
Vim 使用入门
查看>>
(原)centos7安装和使用greenplum4.3.12(详细版)
查看>>