首页 > 其他 > 详细

遍历Dictionary<K,V>的两种方式

时间:2014-08-22 16:05:09      阅读:481      评论:0      收藏:0      [点我收藏+]


添加

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>接口中,我们比较每个名字(比如转化为小写再比较)。

这样就可以了。

 

遍历Dictionary<K,V>的两种方式

原文:http://www.cnblogs.com/WolfBlog/p/3929519.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!