DBK*_*DBK 6 c# equality anonymous-types
当用于比较匿名类型时,为什么Equals()和==的语义不同?为什么要比较值和其他比较参考?它背后的原因是什么?
==不调用Equals,它寻找==重载运算符.由于匿名类型没有重载==运算符,因此C#使用引用比较.
但随着Equals它比较字段值.这就是为什么结果之间==和Equals不同.
因为匿名类型上的Equals和GetHashCode方法是根据属性的Equals和GetHashCode方法定义的,所以同一匿名类型的两个实例只有在它们的所有属性相等时才相等.