Often, you'd want both Equals and GetHashCode to use the logical key to compare instances of a particular object. Example, i have a User class with FirstName, MiddleName and LastName which comprises its logical key meaning and object with FirstName: ...