Dictionary 添加重复的键值对

上代码

 #region 测试Dictionary<TKey,TValue>如何添加键重复的内容

        public class MyDictionaryComparer : IEqualityComparer<string>
        {
            public bool Equals(string x, string y)
            {
                return x!=y;
            }

            public int GetHashCode(string obj)
            {
                //throw new NotImplementedException();
                return obj.GetHashCode();
            }
        }

        public static void csDictionary()
        {
            Dictionary<string, string> dict = new Dictionary<string, string>(new MyDictionaryComparer());
            List<string> ts = new List<string>();
            // 输出内容到控制台
            Console.WriteLine("请输入第一个字符串:");

            while (true)
            {
                string str = Console.ReadLine();

                if (string.IsNullOrEmpty(str))
                {
                    continue;
                }
                ts.Add(str);
                var strarr = str.Split(',');

                dict.Add(strarr[0], strarr[1]);
                Console.WriteLine("Dictionary");
                foreach (var item in dict)
                {
                    Console.WriteLine("键:"+item.Key + ";值:" + item.Value);
                }
                Console.WriteLine("List");
                foreach (var item in ts)
                {
                    Console.WriteLine("值:" + item);
                }

            }
        }
        #endregion

效果图:

 正常情况下向Dictionary添加相同的键会报错,但是实现IEqualityComparer<TKey>接口 以后就不会报错了;

源码出处:https://www.cnblogs.com/rampb/archive/2004/01/13/9668777.html

原文地址:https://www.cnblogs.com/pyf97/p/14155912.html