IEqualityComparer.Equals Method (Object, Object)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Determines whether the specified objects are equal.

Namespace:   System.Collections
Assembly:  mscorlib (in mscorlib.dll)

bool Equals(
	object x,
	object y


Type: System.Object

The first object to compare.

Type: System.Object

The second object to compare.

Return Value

Type: System.Boolean

true if the specified objects are equal; otherwise, false.

Exception Condition

x and y are of different types and neither one can handle comparisons with the other.

Implement this method to provide a customized equality comparison for objects.

Notes to Implementers:

The Equals method is reflexive, symmetric, and transitive. That is, it returns true if used to compare an object with itself; true for two objects x and y if it is true for y and x; and true for two objects x and z if it is true for x and y and also true for y and z.

Implementations are required to ensure that if the Equals method returns true for two objects x and y, then the value returned by the GetHashCode method for x must equal the value returned for y.

The following code example demonstrates the implementation of a case-insensitive IEqualityComparer. In this example, the CaseInsensitiveComparer.Compare method is used to determine whether two objects are equal, based on the provided CultureInfo.

class myCultureComparer : IEqualityComparer
    public CaseInsensitiveComparer myComparer;

    public myCultureComparer()
        myComparer = CaseInsensitiveComparer.DefaultInvariant;

    public myCultureComparer(CultureInfo myCulture)
        myComparer = new CaseInsensitiveComparer(myCulture);

    public new bool Equals(object x, object y)
        if (myComparer.Compare(x, y) == 0)
            return true;
            return false;

    public int GetHashCode(object obj)
        return obj.ToString().ToLower().GetHashCode();

Universal Windows Platform
Available since 8
.NET Framework
Available since 2.0
Portable Class Library
Supported in: portable .NET platforms
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
Return to top