protected virtual bool EqualsImpl(EquatableByValue <T> otherEquatable) => GetAllAttributesToBeUsedForEquality().SequenceEqual(otherEquatable.GetAllAttributesToBeUsedForEquality());
protected virtual bool EqualsImpl(EquatableByValue <T> otherEquatable) { // Implementation where orders of the elements matters. return(GetAllAttributesToBeUsedForEquality().SequenceEqual(otherEquatable.GetAllAttributesToBeUsedForEquality())); }