【发布时间】:2016-03-17 19:09:54
【问题描述】:
我需要比较同一类的 2 个对象。我确信最快的方法是将它们读取为数字,所以如果它们相等,(int)Obj1 - (int)Obj2 会给我 0。但是,看起来我不能那样投。你知道如何快速比较对象吗?我希望避免遍历所有参数,因为不需要知道区别在哪里。
【问题讨论】:
-
没有捷径,除非你已经实现了
IEquatable或覆盖了Equals。 -
参见this 了解二进制等价性。
-
更健壮的解决方案是序列化和比较。但这不会很快。
-
@thepirat000 我无法序列化这些对象。检查了 Yuval Itzchakov 解决方案并标记为“工作”的帖子不起作用。对于同一属性具有不同值的对象返回 true。但是代码对我来说看起来正确。