public unsafe int GetHashCode(T[] obj) { if (obj == null) { return(0); } if (obj.Length == 0) { return(HashSeed); } ReadOnlySpan <byte> objSpan = MemoryMarshal.Cast <T, byte>(obj); fixed(byte *objPtr = &MemoryMarshal.GetReference(objSpan)) { return(EqualityComparisonHelper.GetHashCode(objPtr, obj.Length * EnumValueByteSize)); } }
protected override bool AreEquals(T x, T y) => EqualityComparisonHelper.AreEquals(x, y, ElementEqualityComparer);
protected override int CalcCombinedHashCode(T element, int hashCode) => EqualityComparisonHelper.CalcCombinedHashCode(element, hashCode, ElementEqualityComparer);