IEqualityComparer.Equals(Object, Object) メソッド

定義

指定したオブジェクトが等しいかどうかを判断します。

public:
 bool Equals(System::Object ^ x, System::Object ^ y);
public bool Equals(object x, 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

パラメーター

x
Object

比較する最初のオブジェクト。

y
Object

比較する 2 番目のオブジェクト。

返品

true 指定したオブジェクトが等しい場合。それ以外の場合は false

例外

xy は異なる型であり、どちらも他方との比較を処理できません。

次のコード例は、大文字と小文字を区別しない IEqualityComparerの実装を示しています。 この例では、 CaseInsensitiveComparer.Compare メソッドを使用して、指定された CultureInfoに基づいて、2 つのオブジェクトが等しいかどうかを判断します。

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

注釈

オブジェクトに対してカスタマイズされた等価比較を提供するには、このメソッドを実装します。

注意 (実装者)

Equals(Object, Object)メソッドは、再帰、対称、推移的です。 つまり、オブジェクトをそれ自体と比較するために使用する場合はtrueが返されます。truexy場合は 2 つの trueオブジェクトのy、との場合はxtruexzの場合 trueは 2 つの xオブジェクトのytrueyzも返されます。

実装は、Equals(Object, Object) メソッドが 2 つのオブジェクトtrueおよびxyを返す場合、GetHashCode(Object)x メソッドによって返される値が、yに返される値と等しい必要があることを確認するために必要です。

適用対象