Nota: esta interfaz es nueva en la versión 2.0 de .NET Framework.
Define métodos para admitir la comparación de objetos en concepto de igualdad.
Espacio de nombres: System.Collections
Ensamblado: mscorlib (en mscorlib.dll)
Visual Basic (Declaración)
<ComVisibleAttribute(True)> _
Public Interface IEqualityComparer
Dim instance As IEqualityComparer
[ComVisibleAttribute(true)]
public interface IEqualityComparer
[ComVisibleAttribute(true)]
public interface class IEqualityComparer
/** @attribute ComVisibleAttribute(true) */
public interface IEqualityComparer
ComVisibleAttribute(true)
public interface IEqualityComparer
Esta interfaz permite la implementación de comparación personalizada en concepto de igualdad para colecciones. Es decir, es posible crear una definición de igualdad propia y especificar que dicha definición se utilice con un tipo de colección que acepte la interfaz IEqualityComparer. En .NET Framework, los constructores de los tipos de colección Hashtable, NameValueCollection y OrderedDictionary aceptan esta interfaz.
Esta interfaz sólo admite comparaciones de igualdad. La interfaz IComparer proporciona la personalización de comparaciones para clasificar y ordenar.
Para obtener la versión genérica de esta interfaz, vea System.Collections.Generic.IEqualityComparer.
En el ejemplo de código siguiente se muestra la implementación de una interfaz IEqualityComparer que no distingue entre mayúsculas y minúsculas. En el ejemplo se utiliza el método CaseInsensitiveComparer.Compare para determinar si dos objetos son iguales, basándose en el objeto CultureInfo proporcionado.
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, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter Edition
.NET Framework no admite todas las versiones de cada plataforma. Para obtener una lista de las versiones admitidas, vea Requisitos del sistema.
.NET Framework
Compatible con: 2.0
.NET Compact Framework
Compatible con: 2.0