数组的结构比较

StructuralComparisons for arrays

在 F# 中:

[0] = [0] = true

一般在 C# 或 .NET BCL 中:

StructuralComparisons.Equals(new int[] { 0 }, new int[] { 0 }) == false

为什么?


后记:

我认为我有 "right" 等于的原因是因为事实证明这是真的:

var a = new { X = 3, Y = new { Z = -1 } };
var b = new { X = 3, Y = new { Z = -1 } };

StructuralComparisons.Equals(a, b) == true;

那是因为您将下降到 object.Equals(objA, objB),它将无法处理这种比较。

改为这样做:

StructuralComparisons.StructuralEqualityComparer.Equals(..., ...)