首页 > 代码库 > 初识IStructuralEquatable接口

初识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 FalseConsole.WriteLine(array1 == array2); //output FalseIStructuralEquatable equ = array1;Console.WriteLine(equ.Equals(array2, StructuralComparisons.StructuralEqualityComparer)); //output True

初识IStructuralEquatable接口