IEqualityComparer::Equals Method (Object^, Object^)
Determines whether the specified objects are equal.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- x
-
Type:
System::Object^
The first object to compare.
- y
-
Type:
System::Object^
The second object to compare.
| Exception | Condition |
|---|---|
| ArgumentException | 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.
ref class myCultureComparer : IEqualityComparer { private: CaseInsensitiveComparer^ myComparer; public: myCultureComparer() { myComparer = CaseInsensitiveComparer::DefaultInvariant; } myCultureComparer(CultureInfo^ myCulture) { myComparer = gcnew CaseInsensitiveComparer(myCulture); } virtual bool Equals(Object^ x, Object^ y) { if (myComparer->Compare(x, y) == 0) { return true; } else { return false; } } virtual int GetHashCode(Object^ obj) { return obj->ToString()->ToLower()->GetHashCode(); } };
Available since 8
.NET Framework
Available since 2.0
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1