首页 > 代码库 > 遍历Dictionary<K,V>的两种方式
遍历Dictionary<K,V>的两种方式
添加
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>的两种方式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。