比较两个 .net 对象值的"相似性"



我有一个通用的c#类比较程序,它从对象中读取值,然后使用反射逐个比较它们的属性。

            var value1 = property.GetValue(object1, null);
            var value2 = property.GetValue(object2, null);
            if (!value1.Equals(value2))
            { ......

事情是我在一些浮点/双精度值中得到的差异是微不足道的,我想忽略。实现浮点数/双精度(也可能是整型)基于提供的有效位数比较值的特定测试的最佳方法是什么?

看看EqualityComparer<T>类。

不应该按照您所描述的方式比较对象,而应该依赖所讨论类型的Equals方法。也就是说,类的作者应该通过重写Equals方法(甚至可能实现IEquality接口)来定义该类的两个实例何时相等。

最新更新