C#匿名类型相等

示例

匿名类型相等性由Equals实例方法给出。如果两个对象的类型相同且a.Prop.Equals(b.Prop)每个属性的值(通过)相等,则两个对象相等。

var anon = new { Foo = 1, Bar = 2 };
var anon2 = new { Foo = 1, Bar = 2 };
var anon3 = new { Foo = 5, Bar = 10 };
var anon3 = new { Foo = 5, Bar = 10 };
var anon4 = new { Bar = 2, Foo = 1 };
// anon.Equals(anon2)== true
// anon.Equals(anon3)==否
// anon.Equals(anon4)== false(anon和anon4具有不同的类型,请参见下文)

当且仅当两个匿名类型的属性具有相同的名称和类型并且以相同的顺序出现时,它们才被视为相同。

var anon = new { Foo = 1, Bar = 2 };
var anon2 = new { Foo = 7, Bar = 1 };
var anon3 = new { Bar = 1, Foo = 3 };
var anon4 = new { Fa = 1, Bar = 2 };
// anon和anon2具有相同的类型
// anon和anon3具有不同的类型(Bar和Foo以不同的顺序出现)
// anon和anon4具有不同的类型(属性名称不同)