用于数组的结构比较

本文关键字:比较 结构 数组 用于 | 更新日期: 2023-09-27 18:08:54

In f#:

[0] = [0] = true

在c#或。net BCL中:

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

为什么?


后记:

我认为我有"正确的"等号的原因是,事实证明这是真的:

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(..., ...)