I have a List<CustomObject> and want to remove duplicates from it.
 
If two Custom Objects have same value for property: City, then I will call them duplicate.
I have implemented IEquatable as follows, but not able to remove duplicates from the list.   
What is missing?
 public class CustomAddress : IAddress, IEqualityComparer<IAddress>
 {
    //Other class members go here
    //IEqualityComparer members
    public bool Equals(IAddress x, IAddress y)
    {
        // Check whether the compared objects reference the same data.
        if (ReferenceEquals(x, y)) return true;
        // Check whether any of the compared objects is null.
        if (ReferenceEquals(x, null) || ReferenceEquals(y, null))
            return false;
        // Check whether the Objects' properties are equal.
        return x.City.Equals(y.City);
    }
    public int GetHashCode(IAddress obj)
    {
        // Check whether the object is null.
        if (ReferenceEquals(obj, null)) return 0;
        int hashAreaName = City == null ? 0 : City.GetHashCode();
        return hashAreaName;
    }
 }
I am using .NET 3.5
 
     
     
     
     
    