It compares objects for equality using Equals. It determines which bucket to place them in using GetHashCode.
, HashSet IEqualityComparer<T>, , . , EqualityComparer<T>.Default, GetHashCode() IEquatable<T>.Equals() ( object.Equals(), IEquatable<T>).