这是为两个字典的相等性创建比较器的最佳方法吗?这需要准确。请注意, Entity.Columns 是 KeyValuePair(string, object) 的字典:
public class EntityColumnCompare : IEqualityComparer<Entity>
{
public bool Equals(Entity a, Entity b)
{
var aCol = a.Columns.OrderBy(KeyValuePair => KeyValuePair.Key);
var bCol = b.Columns.OrderBy(KeyValuePAir => KeyValuePAir.Key);
if (aCol.SequenceEqual(bCol))
return true;
else
return false;
}
public int GetHashCode(Entity obj)
{
return obj.Columns.GetHashCode();
}
}
也不太确定 GetHashCode 的实现。
谢谢!