I try to implement IEqualityComparer:
class AddressComparer : IEqualityComparer<Address>
{
    #region IEqualityComparer<Address> Members
    public bool Equals(Address x, Address y)
    {
       return (x.CurrentBuildingNumber == y.CurrentBuildingNumber) && (x.CurrentBuildingLetter == y.CurrentBuildingLetter);
    }
    public int GetHashCode(Address obj)
    {
        return obj.StreetCode1 + obj.StreetCode2 + obj.BuildingNumber1 + obj.BuildingNumber2;
    }
    #endregion
}
Here is Address class:
public class Address : IComparable
{   
    public int StreetCode1   { get; set; }
    public int BuildingNumber1 { get; set; }
    public string BuildingLetter1 { get; set; }
    public int StreetCode2 { get; set; }
    public int BuildingNumber2 { get; set; }
    public string BuildingLetter2 { get; set; }
}
The AddressComparer works perfect if properies StreetCode and BuildingNumber of the Address class are integers.
But what if I need to change the type of properies StreetCode and BuildingNumber in the Address class to string:
public class Address : IComparable
{   
    public string StreetCode1 { get; set; }
    public string BuildingNumber1 { get; set; }
    public string BuildingLetter1 { get; set; }
    public string StreetCode2 { get; set; }
    public string BuildingNumber2 { get; set; }
    public string BuildingLetter2 { get; set; }
}
Here is imlementation of the new AddressComparer:
class AddressComparer : IEqualityComparer<Address>
{
    #region IEqualityComparer<Address> Members
    public bool Equals(Address x, Address y)
    {
       return String.Compare(x.CurrentBuildingNumber, y.CurrentBuildingNumber) && (x.CurrentBuildingLetter, y.CurrentBuildingLetter)
    }
    public int GetHashCode(Address obj)
    {
        //how to implement?
    }
    #endregion
}
How do I implement GetHashCode method if my properies are strings?
