F# の場合:
[0] = [0] = true
一般に、C# または .NET BCL の場合:
StructuralComparisons.Equals(new int[] { 0 }, new int[] { 0 }) == false
なんで?
追記:
私が「正しい」Equalsを持っていると思った理由は、これが真実であることが判明したからです:
var a = new { X = 3, Y = new { Z = -1 } };
var b = new { X = 3, Y = new { Z = -1 } };
StructuralComparisons.Equals(a, b) == true;