由于比较器仅在
KeyValuePair
,可以使用值类型的类型参数将两个比较器泛化为单个泛型类型,如下所示。
class KvpComparer<T> : IEqualityComparer<KeyValuePair<string,T>> where T : class
{
public bool Equals(KeyValuePair<string,T> x, KeyValuePair<string,T> y)
{
return x.Key.Equals(y.Key);
}
public int GetHashCode(KeyValuePair<string, T> obj)
{
return obj.Key.GetHashCode();
}
}