比较两个集合



我搜索了我的问题的解决方案,但我想我再次尝试错误的关键字。我想比较两个observablecollection。Equals和SequenceEqual不能工作。

我用反射写了一些比较方法:

var properties = typeof(MyClass).GetProperties();
for (var i = 0; i < list1.Count(); i++)
{
    foreach (var property in properties)
    {
        var value1 = property.GetValue(list1[i]);
        var value2 = property.GetValue(list2[i]);
        if (value1 != value2)
        {
            return false;
        }
    }
}

value1和value2都是'true',但它跳转到返回语句中。

当然,我可以用MyClass的每个属性手工操作,但这不是很舒服。

value1value2object s。
==总是通过引用来比较它们。

相反,您应该检查if (Equals(value1, value2)),它将按值对它们进行比较。具体来说,它将在适当的null检查之后调用被覆盖的value1.Equals(value2)

相关内容

  • 没有找到相关文章

最新更新