C#--Dictionary

时间:2019-08-29
本文章向大家介绍C#--Dictionary,主要包括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;
        }
    }

总结完毕!

原文地址:https://www.cnblogs.com/dcy521/p/11427972.html