初识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
posted @ 2014-12-03 22:39  dudu  阅读(982)  评论(1编辑  收藏  举报