用于数组的结构比较
本文关键字:比较 结构 数组 用于 | 更新日期: 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(..., ...)