System.IComparable interface is required for objects to be able to be sorted or ordered. IComparable specifies one method public int CompareTo (object obj); this instances is to be sorted after obj. If the return value is greater than zero, it indicates that this instance is to be sorted after obj and 0 indicates that both instances have the same position. IComparable and overrides Equals() and GetHashCode().