Note

Access to this page requires authorization. You can try signing in or .

Access to this page requires authorization. You can try .

IEqualityComparer.GetHashCode(Object) Method

Definition

Namespace:
System.Collections
Assemblies:
mscorlib.dll, System.Runtime.dll
Assemblies:
netstandard.dll, System.Runtime.dll
Assembly:
System.Runtime.dll
Assembly:
mscorlib.dll
Assembly:
netstandard.dll
Source:
IEqualityComparer.cs
Source:
IEqualityComparer.cs
Source:
UnverifiableCodeAttribute.cs

Important

Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

Returns a hash code for the specified object.

public:
 int GetHashCode(System::Object ^ obj);
public int GetHashCode(object obj);
abstract member GetHashCode : obj -> int
Public Function GetHashCode (obj As Object) As Integer

Parameters

obj
Object

The Object for which a hash code is to be returned.

Returns

A hash code for the specified object.

Exceptions

The type of obj is a reference type and obj is null.

Examples

The following code example demonstrates the implementation of a case-insensitive IEqualityComparer. In this example, the GetHashCode method returns the hash code provided by the Object type.

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)
 {
 return myComparer.Compare(x, y) == 0;
 }

 public int GetHashCode(object obj)
 {
 return obj.ToString().ToLower().GetHashCode();
 }
}
Public Class myCultureComparer
 Implements IEqualityComparer

 Dim myComparer As CaseInsensitiveComparer

 Public Sub New()
 myComparer = CaseInsensitiveComparer.DefaultInvariant
 End Sub

 Public Sub New(ByVal myCulture As CultureInfo)
 myComparer = New CaseInsensitiveComparer(myCulture)
 End Sub

 Public Function Equals1(ByVal x As Object, ByVal y As Object) _
 As Boolean Implements IEqualityComparer.Equals

 Return myComparer.Compare(x, y) = 0
 End Function

 Public Function GetHashCode1(ByVal obj As Object) _
 As Integer Implements IEqualityComparer.GetHashCode
 Return obj.ToString().ToLower().GetHashCode()
 End Function
End Class

Remarks

Implement this method to provide customized hash codes for objects, corresponding to the customized equality comparison provided by the Equals method.

Notes to Implementers

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

Applies to

See also


Feedback

Was this page helpful?