C# 用于比较两个复杂对象的IEqualityComparer
参考我先前的问题 我已经实现了IEqualityComparer来检查我的对象列表是否相等,但它似乎不起作用。有人能帮忙找到问题吗C# 用于比较两个复杂对象的IEqualityComparer,c#,iequalitycomparer,C#,Iequalitycomparer,参考我先前的问题 我已经实现了IEqualityComparer来检查我的对象列表是否相等,但它似乎不起作用。有人能帮忙找到问题吗 public class Compare : IEqualityComparer<test> { public bool Equals(test x, test y) { if (x == null || y == null) return false; bool equals = x.ID == y.I
public class Compare : IEqualityComparer<test>
{
public bool Equals(test x, test y)
{
if (x == null || y == null) return false;
bool equals = x.ID == y.ID && x.Name == y.Name && x.Remark == y.Remark
&& x.Details == y.Details;
return equals;
}
public int GetHashCode(test codeh)
{
return (codeh.ID + codeh.Name + codeh.Remark + codeh.Details).GetHashCode();
}
}
我正在尝试比较以下列表:
List<test> testOldList = (from test in testPrev.test
where test.ID == testId.ToString()
select test).ToList();
List<test> testNewList = (from test in testnew.test
where test.ID == testId.ToString()
select test).ToList();
var Comparer = new Compare();
bool bothEqual = new HashSet<Record>(testOldList , Comparer).SetEquals(new HashSet<Record>(testNewList , Comparer));
List testOldList=(来自testPrev.test中的测试
其中test.ID==testId.ToString()
选择test).ToList();
List testNewList=(来自testnew.test中的测试
其中test.ID==testId.ToString()
选择test).ToList();
var Comparer=new Compare();
boolbothequal=newhashset(testOldList,Comparer).SetEquals(newhashset(testNewList,Comparer));
您只给出了部分问题。包括失败的代码。这可能与test.Details没有XmlElement属性有关吗?
List<test> testOldList = (from test in testPrev.test
where test.ID == testId.ToString()
select test).ToList();
List<test> testNewList = (from test in testnew.test
where test.ID == testId.ToString()
select test).ToList();
var Comparer = new Compare();
bool bothEqual = new HashSet<Record>(testOldList , Comparer).SetEquals(new HashSet<Record>(testNewList , Comparer));