• C#--Dictionary字典学习


    一:理解Dictionary

    1:在C#编程中,Dictionary的用途很广,很实用,它翻译成中文的意思是‘字典’,功能和现实中的字典功能很相似,他的结构是这样的:Dictionary<[key], [value]>,存数据的时候是以键值对的形式存的,取数据的时候也是通过键,找到对应的值!存取都很方便

    2:他本身有集合的功能有时候可以把它看成数组,可以存很多值,取的时候只要用对应的键就可以拿到对应的值

    3:有时候在做项目时候,我们会有这么个需求,拿对应的值,去数据库中取对应的数据,但是如果每次都去数据库中查找,这样效率会很低,因为每次都要访问数据库,中间会经历很多步骤,这个时候就可以把数据一次性读取,存入到字典里,再从字典里取对应的数据,效率会大大提高!

    二:代码示例

    static void Main(string[] args)
            {
                //实例化对象
    
                //键为int类型,值为string类型
    
                Dictionary<int, string> dic = new Dictionary<int, string>();
    
                //对象打点添加
    
                dic.Add(1, "one");
    
                dic.Add(2, "two");
    
                dic.Add(3, "three");
    
                //提取元素的方法
    
                string a = dic[1];
    
                string b = dic[2];
    
                string c = dic[3];
    
                Console.WriteLine(a + "," + b + "," + c);
    
                //实例化对象
    
                //键为string类型,值为string类型
    
                Dictionary<string, string> dic2 = new Dictionary<string, string>();
    
                dic2.Add("name", "张三");
    
                dic2.Add("age", "18");
    
                dic2.Add("add", "上海");
    
                //提取元素的方法
    
                string name = dic2["name"];
    
                string age = dic2["age"];
    
                string add = dic2["add"];
    
                Console.WriteLine("姓名:" + name + ",  " + "年龄:" + age + ",  " + "地址:" + add);
    
                Console.ReadKey();
            }

    三:对字典排序

    Dictionary<int, string> dic = new Dictionary<int, string>();
    
                dic.Add(1, "1");
    
                dic.Add(5, "5");
    
                dic.Add(3, "3");
    
                dic.Add(2, "2");
    
                dic.Add(4, "4");
    
                var result = from res in dic orderby res.Key select res;
    
    
                foreach (KeyValuePair<int, string> res in result)
                {
    
                    Console.WriteLine("Key:{0}, Value:{1}", res.Key, res.Value);
    
                }
    
                Console.ReadKey();

    四:使用案例

    1,需求:现在要导入一批数据,这些数据中有一个称为公司的字段是我们数据库里已经存在了的,目前我们需要把每个公司名字转为ID后才存入数据库。

    2,分析:每导一笔记录的时候,就把要把公司的名字转为公司的ID,这个不应该每次都查询一下数据库的,因为这太耗数据库的性能了。

    解决方案:在业务层里先把所有的公司名称及相应的公司ID一次性读取出来,然后存放到一个Key和Value的键值对里,然后实现只要把一个公司的名字传进去,就可以得到此公司相应的公司ID,就像查字典一样。对,我们可以使用字典Dictionary操作这些数据

    代码示例:

    class Program
        {
            static void Main(string[] args)
            {
                Dictionary<string, int> myDictionary = SetKeyValue();
                //测试得到公司2的值
                int directorValue = myDictionary["公司2"];
                Console.Write("公司2的value是:" + directorValue.ToString());
            }
            public static Dictionary<string, int> SetKeyValue()
            {
                Dictionary<string, int> dic = new Dictionary<string, int>();
                dic.Add("公司1", 1);
                dic.Add("公司2", 2);
                dic.Add("公司3", 3);
                dic.Add("公司4", 4);
                return dic;
            }
        }

    总结完毕!

  • 相关阅读:
    hdu 6702 ^&^ 位运算
    hdu 6709 Fishing Master 贪心
    hdu 6704 K-th occurrence 二分 ST表 后缀数组 主席树
    hdu 1423 Greatest Common Increasing Subsequence 最长公共上升子序列 LCIS
    hdu 5909 Tree Cutting FWT
    luogu P1588 丢失的牛 宽搜
    luogu P1003 铺地毯
    luogu P1104 生日
    luogu P1094 纪念品分组
    luogu P1093 奖学金
  • 原文地址:https://www.cnblogs.com/dcy521/p/11427972.html
Copyright © 2020-2023  润新知