上代码
#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
