问题由上篇而来
using System.Collections.Generic;
using System;
namespace pdfToExcel{
class MySortList<K,V>:SortedList<K,V>
{
private class MyComparer<K> : IComparer<K>
{
public int Compare(K x, K y)
{
return 1; //永远不等,允许重复
}
}
public MySortList():base(new MyComparer<K>())
{
}
public void Add(K key, V value)
{
//falg用于跳出函数
int flag = 0;
//检查是否具备这个key,并且检查value是否重复
foreach (KeyValuePair<K,V> item in this)
{
if (item.Key.ToString() == key.ToString() && item.Value.ToString() == value.ToString())
{
flag=1;
}
}
if (flag == 1)
return; //跳出函数
//否则就加入
base.Add(key, value);
}
}
class Program
{
static void Main(string[] args)
{
MySortList<string, string> m = new MySortList<string, string>();
m.Add("a", "a");
m.Add("b", "b");
m.Add("a", "c");
m.Add("d", "c");
m.Add("a", "a"); //此行没有加入
Console.ReadKey();
}
}
}
这样键可以重复,值可以重复,但是键值不可以重复
参考:http://social.msdn.microsoft.com/Forums/zh-CN/2212/thread/3a24ba81-3ba0-4727-ba93-1b319a947feb