我有两个代表两个表的BONUSPACK: Invalid response from server: HTTP/1.1 403 Forbidden
。我想获得那些表中不同的Dictionary对象。
我正在尝试使用Except方法,因为它基本上是我想要的:它返回差异。但是因为这个方法使用默认比较器,所以我创建了自己的IEqualityComparer实现。
在下面的示例中,它工作得很好,但在现实生活中,字典要复杂得多,所以我想知道 - 我的实现是一个很好的解决方案还是必须加强?
List<Dictionary<string,string>>
答案 0 :(得分:-1)
我认为会有一些更清洁的解决方案:
public class DictionaryComparer : IEqualityComparer<KeyValuePair<string, string>>
{
public bool Equals(KeyValuePair<string, string> x, KeyValuePair<string, string> y)
{
return x.Key.Equals(y.Key)
&& x.Value.Equals(y.Value);
}
public int GetHashCode(KeyValuePair<string, string> obj)
{
return string.Concat(obj.Key, obj.Value)
.GetHashCode();
}
}