zoukankan      html  css  js  c++  java
  • 遍历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>接口中,我们比较每个名字(比如转化为小写再比较)。

    这样就可以了。

  • 相关阅读:
    谷雨路
    ObjectiveC_2.0大全.pdf iOS 5 Programming Cookbook http://www.devdiv.com
    http://www.120ask.com/zjamk/13/13658784.htm
    iPhone学习系列、代码教程___持续更新中
    30天精通iPhone手机编程
    font
    iPhone开发学习资料汇总
    tools
    http://blog.csdn.net/likendsl
    http://blog.csdn.net/iukey
  • 原文地址:https://www.cnblogs.com/WolfBlog/p/3929519.html
Copyright © 2011-2022 走看看