c# 键值对集合Dictionary


一、方法同hashtable,键必须唯一。

链接https://www.cnblogs.com/yaoyue68/p/14508064.html

  Dictionary<int,string> dc = new Dictionary<int ,string>();
            dc.Add(1, "天气好");
            dc.Add(2, "天气不好");
            dc[2] = "我修改你";
            dc[3] = "我是新加的"; //没有就添加,有则修改
            dc.ContainsValue(); //重要的两个方法
            dc.ContainsValue();
            //遍历,var简便些
            foreach (var keyValuePair in dc)
            {
                Console.WriteLine($"{keyValuePair.Key}:{keyValuePair.Value}");
            }
            //或者 声明类型 KeyValuePair<int,string> kv
            foreach (KeyValuePair<int,string> kv  in dc)
            {
                Console.WriteLine($"{kv.Key}:{kv.Value}");
            }
            Console.ReadKey();

二、练习

1.将一个数组中的奇偶数各放到一个集合中,然后重组为集合,键为奇数,键值为偶数。

int[] raw = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
            List<int> ji = new List<int>();
            List<int> ou = new List<int>();
            for (int i = 0; i < raw.Length; i++)
            {
                if (raw[i]%2==0)
                {
                    ou.Add(raw[i]);
                }
                else 
                {
                    ji.Add(raw[i]);
                }
            }
            //拼接新字典键值对
            Dictionary<int, int> dc = new Dictionary<int, int>();
            for (int i = 0; i < ou.Count; i++)
            {
                dc.Add(ji[i], ou[i]);
            }

            foreach (var item in dc)
            {
                Console.WriteLine($"{item.Key}:{item.Value}");
            }

2.统计welcome to china 各字符出现的次数

static void Main(string[] args)
        {
            string raw = "welcome to china";
            Dictionary<char, int> dc = new Dictionary<char, int>();
            //去空格
            string raw2 = raw.Replace(" ", "");
             ///如果没有上面的去空格语句,则
                if (raw[i]==' ')    //replace是双引号
                {
                    continue; //跳过这次的循环,直接进行下一次
                }
                ///
            for (int i = 0; i < raw2.Length; i++)
            {
                if (!dc.ContainsKey(raw2[i]))//containskey注意
                {
                    dc.Add(raw2[i], 1);
                }
                else
                {
                    dc[raw2[i]]++;
                }
            }

            foreach (var item in dc)
            {
                Console.WriteLine($"{item.Key}:{item.Value}");
            }

            Console.ReadKey();
        }

  

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM