C#:检查两个对象是否具有相同的数据

时间:2014-08-01 09:44:33

标签: c# .net

假设Obj1Obj2是同一个类的对象,并且该类只包含字段,如果该类的字段不是,则可以检查这两个对象是否具有相同的数据已知?

2 个答案:

答案 0 :(得分:5)

var haveSameData = false;

foreach(PropertyInfo prop in Obj1.GetType().GetProperties())
{
    haveSameData = prop.GetValue(Obj1, null).Equals(prop.GetValue(Obj2, null));

    if(!haveSameData)
       break;
}

这是基于假设(对象属于同一类型),并且可能会被重构以使其更具防御性,  但我保持它的可读性,这样你就能掌握我想要做的事情。

简而言之,使用反射迭代字段并检查每个字段的值,直到满意它们不匹配(此后不需要继续迭代)。

答案 1 :(得分:-4)

试试这个断言:

CollectionAssert.AreEqual(Obj1, Obj2);