IEqualityComparer.Equals(Object, Object) Metod

Definition

Avgör om de angivna objekten är lika med.

public:
 bool Equals(System::Object ^ x, System::Object ^ y);
public bool Equals(object x, object y);
abstract member Equals : obj * obj -> bool
Public Function Equals (x As Object, y As Object) As Boolean

Parametrar

x
Object

Det första objektet som ska jämföras.

y
Object

Det andra objektet att jämföra.

Returer

trueom de angivna objekten är lika; annars . false

Undantag

x och y är av olika typer och ingen av dem kan hantera jämförelser med den andra.

Exempel

Följande kodexempel visar implementeringen av ett skiftlägesokänsligt IEqualityComparer. I det här exemplet CaseInsensitiveComparer.Compare används metoden för att avgöra om två objekt är lika med, baserat på den angivna 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)
    {
        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

Kommentarer

Implementera den här metoden för att tillhandahålla en anpassad likhetsjämförelse för objekt.

Anteckningar till implementerare

Metoden Equals(Object, Object) är reflexiv, symmetrisk och transitiv. Det vill: den returnerar true om den används för att jämföra ett objekt med sig själv; true för två objekt x och y om det är true för y och x; och true för två objekt x och z om det är true för x och y och även true för y och z.

Implementeringar krävs för att säkerställa att om Equals(Object, Object) metoden returnerar true för två objekt x och y, måste värdet som returneras av GetHashCode(Object) metoden för x vara lika med det värde som returneras för y.

Gäller för