IEqualityComparer.Equals メソッド
アセンブリ: mscorlib (mscorlib.dll 内)

Dim instance As IEqualityComparer(Of T) Dim x As T Dim y As T Dim returnValue As Boolean returnValue = instance.Equals(x, y)
戻り値
指定したオブジェクトが等しい場合は true。それ以外の場合は false。

T 型が等しいかどうかの比較方法をカスタマイズするには、このメソッドを実装します。
実装時の注意 Equals メソッドが x と y の 2 つのオブジェクトに対して true を返す場合には、必ず、GetHashCode メソッドから返される x の値と y の値が等しくなるように実装する必要があります。 Equals メソッドは、再帰的、対称的、かつ推移的です。つまり、オブジェクトとそのオブジェクト自体の比較に使用した場合は true が返されます。y と x が true になる場合は、x と y の 2 つのオブジェクトに対して true が返されます。x と y が true になり、y と z も true になる場合は、x と z の 2 つのオブジェクトに対して true が返されます。
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


IEqualityComparer.Equals メソッド
アセンブリ: mscorlib (mscorlib.dll 内)

Dim instance As IEqualityComparer Dim x As Object Dim y As Object Dim returnValue As Boolean returnValue = instance.Equals(x, y)
戻り値
指定したオブジェクトが等しい場合は true。それ以外の場合は false。


複数のオブジェクトが等しいかどうかの比較方法をカスタマイズするには、このメソッドを実装します。
実装時の注意 Equals メソッドは、再帰的、対称的、かつ推移的です。つまり、オブジェクトとそのオブジェクト自体の比較に使用した場合は true が返されます。y と x が true になる場合は、x と y の 2 つのオブジェクトに対して true が返されます。x と y が true になり、y と z も true になる場合は、x と z の 2 つのオブジェクトに対して true が返されます。 Equals メソッドが x と y の 2 つのオブジェクトに対して true を返す場合には、必ず、GetHashCode メソッドから返される x の値と y の値が等しくなるように実装する必要があります。
大文字と小文字を区別しない IEqualityComparer の実装方法を次のコード例に示します。この例では、指定された CultureInfo に基づき、CaseInsensitiveComparer.Compare メソッドを使用して、2 つのオブジェクトが等しいかどうかを判断しています。
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
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(); } }
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(); } };

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- IEqualityComparer.Equalsのページへのリンク