初识IStructuralEquatable接口
System.Collections.IStructuralEquatable 是 .NET Framework 4.5 新引入的一个接口,位于System.Runtime.dll程序集中。
MSDN上对这个接口的定义是:Defines methods to support the comparison of objects for structural equality.
它用于比较2个对象在结构上是否相等(structural equality)。
比如下面的2个数组就是结构相等的,数组中都保存着同样的数据:
int[] array1 = { 1, 2, 3 }; int[] array2 = { 1, 2, 3 };
那用IStructuralEquatable如何比较2个对象是否结构相等呢?
一码胜千言!看下面的代码:
int[] array1 = { 1, 2, 3 }; int[] array2 = { 1, 2, 3 }; Console.WriteLine(array1.Equals(array2)); //output False Console.WriteLine(array1 == array2); //output False IStructuralEquatable equ = array1; Console.WriteLine(equ.Equals(array2, StructuralComparisons.StructuralEqualityComparer)); //output True