我有兩個List,這個複雜對象有4個引用類型的公共屬性。 如何將一個列表與另一個列表進行比較,以查找這些列表的大小和值是否相等。比較兩個複雜對象的相等性
我已經實現的equals ComplexObject爲了幫助平等檢查
public Type1 Type1 { get; set; }
public IEnumerable<Type2> Type2s{ get; set; }
public Type3 Type3{ get; set; }
public Type4 Type4 { get; set; }
public bool Equals(ComplexObject complexObject)
{
int type2sCount = Type2s.Count();
return Type1 .Equals(complexObject.Type1) &&
Type3.Equals(complexObject.Type3) &&
Type4.Equals(complexObject.Type4) &&
Type2s.Intersect(complexObject.Type2s).Count() == type2sCount;
}
我也需要打印出做不適合或在第二列表中沒有對
由於項目
我應該使用這種方法排序嗎? – eugeneK
@eugeneK取決於......你認爲他們是「集合」還是「序列」?我建議序列{1,2,3} **不等於序列{1,3,2},但是如果我們將它們看作* sets *:它們是。無論如何,我不會做任何排序。如果我們將它們當作*集合*,我可能會使用'HashSet'緩衝區或其他東西。當然,如果您認爲'{1,1,2,3}'與{1,2,3}'不同,那麼就會變得棘手,因爲如果我們將它們當作集合來對待:它們是相同的。 –
這些都是集合,所以我可以使用您的Equals建議以及@Charlie - BlokeTech的答案。除非有更好的解決方案。我無法得到如何HasSet會幫助我。 –
eugeneK