1
私は2つのキー値の比較を持っています - どちらも私は比較するためにキーを使用しています。 値にジェネリックを使用できますか?2つのクラスを持つ代わりに、1つしか持てませんか?代わりに、私は私がする比較器がKeyValuePair
の値型のみが異なるとして、あなたが一般化する値型の型パラメータを使用できる唯一の1クラスKeyValueComparer(キーに基づいて)
class KvpComparer : IEqualityComparer < KeyValuePair < string, T>>
{
...
}
class KvpComparer : IEqualityComparer<KeyValuePair<string, Tuple<string, string>>>
{
public bool Equals(KeyValuePair<string, Tuple<string, string>> x, KeyValuePair<string, Tuple<string, string>> y)
{
return x.Key.Equals(y.Key);
}
public int GetHashCode(KeyValuePair<string, Tuple<string, string>> obj)
{
return obj.Key.GetHashCode();
}
}
class KvpComparer2 : IEqualityComparer<KeyValuePair<string, string>>
{
public bool Equals(KeyValuePair<string, string> x, KeyValuePair<string, string> y)
{
return x.Key.Equals(y.Key);
}
public int GetHashCode(KeyValuePair<string, string> obj)
{
return obj.Key.GetHashCode();
}
}
ありがとう、Codor! – Anand