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

Im folgenden Codebeispiel wird die Implementierung einer groß- IEqualityComparer/Kleinschreibung veranschaulicht.The following code example demonstrates the implementation of a case-insensitive IEqualityComparer. In diesem Beispiel wird die CaseInsensitiveComparer.Compare -Methode verwendet, um zu bestimmen, ob zwei-Objekte gleich sind, CultureInfobasierend auf dem bereitgestellten.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)
    {
        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

Hinweise

Implementieren Sie diese Methode, um einen angepassten Gleichheits Vergleich 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 reflexiv, symmetrisch und transitiv.The Equals(Object, Object) method is reflexive, symmetric, and transitive. Das heißt, es wird true zurückgegeben, wenn es zum Vergleichen eines Objekts mit sich selbst verwendet wird. true y x für zwei- x Objekte y und, wenn Sie für undxist true , und für zwei-Objekte und z, wenn Sie truefür true x undy auch fürundy z. trueThat 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, Equals(Object, Object) dass GetHashCode(Object) x true der Wert, der von yder-Methode für x zurückgegeben wird, gleich dem Wert ist, der 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: