我想比较两个对象,例如:
DirectoryInfo di1 = new DirectoryInfo("C:\\"); DirectoryInfo di2 = new DirectoryInfo("C:\\");
好的,是的,我知道我们这里有不同的引用,这个类没有实现IComparable,甚至GetHashCode返回不同的结果.
但它们是一样的!(逻辑:))
我知道我可以使用反射来比较类之间的每个字段和属性,但它太慢了.
我也可以使用序列化; 序列化每个对象并比较二进制数据,但这更慢!
还有其他想法吗?
我建议IEqualityComparer
在那里创建一个实现并封装相等检查代码.以下是有关以下文档的链接IEqualityComparer
:
http://msdn.microsoft.com/en-us/library/ms132151.aspx