Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Interfaz IEquatable<T>

 

Publicado: noviembre de 2016

Define un método generalizado que implementa un tipo o una clase de valor con el fin de crear un método específico del tipo para determinar la igualdad de las instancias.

Espacio de nombres:   System
Ensamblado:  mscorlib (en mscorlib.dll)

public interface IEquatable<T>

Parámetros de tipo

T

Tipo de objetos que se van a comparar.

NombreDescripción
System_CAPS_pubmethodEquals(T)

Indica si el objeto actual es igual que otro objeto del mismo tipo.

Esta interfaz se implementa mediante tipos cuyos valores se pueden igualar (por ejemplo, la cadena y numérico clases). Un tipo de valor o una clase implementa la Equals método para crear un método específico del tipo adecuado para determinar la igualdad de instancias.

System_CAPS_noteNota

El IComparable<T> interfaz define el CompareTo método, que determina el criterio de ordenación de instancias del tipo de implementación. El IEquatable<T> interfaz define el Equals método, que determina la igualdad de las instancias del tipo de implementación.

El IEquatable<T> interfaz se usa como objetos de colección genéricos Dictionary<TKey, TValue>, List<T>, y LinkedList<T> al probar la igualdad en métodos como Contains, IndexOf, LastIndexOf, y Remove. Se debe implementar para cualquier objeto que pueda almacenarse en una colección genérica.

Notas para implementadores:

Reemplace el parámetro de tipo de la IEquatable<T> interfaz con el tipo que esté implementando esta interfaz.

Si implementa IEquatable<T>, también debe invalidar las implementaciones de la clase base de Object.Equals(Object) y GetHashCode para que su comportamiento es coherente con el de la IEquatable<T>.Equals método. Si invalida Object.Equals(Object), su implementación invalidada también se denomina en las llamadas a estático Equals(System.Object, System.Object) método en su clase. Además, se debería sobrecargar el op_Equality y op_Inequality operadores. Esto garantiza que todas las pruebas de igualdad devuelvan resultados coherentes.

System_CAPS_noteNota

Para obtener información sobre cómo reemplazar Equals(Object), consulte el Object.Equals(Object) artículo.

Para un tipo de valor, deben implementar siempre IEquatable<T> e invalide Object.Equals(Object) para mejorar el rendimiento. Object.Equalscuadros de los tipos de valor y se basa en la reflexión para comparar dos valores son iguales. Tanto la implementación de Equals y el reemplazo del Object.Equals debe devolver resultados coherentes.

Si implementa IEquatable<T>, también debe implementar IComparable<T> si pueden se ordenan u ordenadas instancias de su tipo. Si el tipo implementa IComparable<T>, además, siempre debe implementar IEquatable<T>.

Vea el ejemplo de la IEquatable<T>.Equals método.

Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 2.0
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Windows Phone
Disponible desde 8.1
Volver al principio
Mostrar: