IEqualityComparer.Equals(Object, Object) IEqualityComparer.Equals(Object, Object) IEqualityComparer.Equals(Object, Object) IEqualityComparer.Equals(Object, Object) Method

Definition

Bestimmt, ob die angegebenen Objekte gleich sind.Determines whether the specified objects are equal.

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

Parameter

x
Object Object Object Object

Das erste zu vergleichende Objekt.The first object to compare.

y
Object Object Object Object

Das zweite zu vergleichende Objekt.The second object to compare.

Gibt zurück

true, wenn die angegebenen Objekte gleich sind, andernfalls false.true if the specified objects are equal; otherwise, false.

Ausnahmen

x und y sind nicht vom gleichen Typ. Keines der beiden kann einen Vergleich mit dem jeweils anderen Objekt behandeln.x and y are of different types and neither one can handle comparisons with the other.

Beispiele

Das folgende Codebeispiel veranschaulicht die Implementierung von einem Groß-/Kleinschreibung IEqualityComparer.The following code example demonstrates the implementation of a case-insensitive IEqualityComparer. In diesem Beispiel die CaseInsensitiveComparer.Compare Methode wird verwendet, um zu bestimmen, ob zwei Objekte gleich sind, auf der Grundlage der bereitgestellten CultureInfo.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();
    }
};
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;
        }
        else
        {
            return false;
        }
    }

    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

        If (myComparer.Compare(x, y) = 0) Then
            Return True
        Else
            Return False
        End If
    End Function

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

Hinweise

Implementieren Sie diese Methode, um einen benutzerdefinierten Gleichheitsvergleich für Objekte bereitzustellen.Implement this method to provide a customized equality comparison for objects.

Hinweise für Ausführende

Die Equals(Object, Object) Methode ist reflexive, symmetrische und transitiv.The Equals(Object, Object) method is reflexive, symmetric, and transitive. D. h. Es gibt true Wenn verwendet, um ein Objekt mit selbst verglichen werden soll. true für zwei Objekte x und y ist dies true für y und x; und true für zwei Objekte x und z ist dies truefür x und y sowie true für y und z.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.

Implementierungen sind erforderlich, um sicherzustellen, dass bei der Equals(Object, Object) Methodenrückgabe true für zwei Objekte x und y, klicken Sie dann den Rückgabewert von der GetHashCode(Object) -Methode für x muss gleich den Rückgabewert für y.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.

Gilt für: