Este tema aún no ha recibido ninguna valoración - Valorar este tema

IEqualityComparer (Interfaz)

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)

[ComVisibleAttribute(true)] 
public interface 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.

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();
    }
}

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
¿Le ha resultado útil?
(Caracteres restantes: 1500)
Contenido de la comunidad Agregar