Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

IEquatable<T> interface

 

Date de publication : novembre 2016

Définit une méthode généralisée qu'un type valeur ou une classe implémente pour créer une méthode spécifique au type permettant de déterminer l'égalité des instances.

Espace de noms:   System
Assembly:  mscorlib (dans mscorlib.dll)

public interface IEquatable<T>

Paramètres de type

T

Type des objets à comparer.

NomDescription
System_CAPS_pubmethodEquals(T)

Indique si l'objet actuel est égal à un autre objet du même type.

Cette interface est implémentée par les types dont les valeurs peuvent être comparées (pour les classes d’exemple, numérique et chaîne). Un type valeur ou une classe implémente la Equals méthode pour créer une méthode spécifique au type et permettant de déterminer l’égalité des instances.

System_CAPS_noteRemarque

Le IComparable<T> interface définit les CompareTo (méthode), qui détermine l’ordre de tri des instances de l’implémentation du type. Le IEquatable<T> interface définit les Equals (méthode), qui détermine l’égalité des instances de l’implémentation du type.

Le IEquatable<T> interface est utilisée par les objets de collection générique, tel que Dictionary<TKey, TValue>, List<T>, et LinkedList<T> lors du test d’égalité dans des méthodes telles que Contains, IndexOf, LastIndexOf, et Remove. Il doit être implémenté pour un objet qui peut être stocké dans une collection générique.

Remarques à l’attention des implémenteurs :

Remplacez le paramètre de type de la IEquatable<T> interface avec le type qui implémente cette interface.

Si vous implémentez IEquatable<T>, vous devez également remplacer les implémentations de classe de base de Object.Equals(Object) et GetHashCode afin que leur comportement est cohérent avec celui de la IEquatable<T>.Equals (méthode). Si vous substituez Object.Equals(Object), votre implémentation substituée est également appelée dans les appels à la méthode statique Equals(System.Object, System.Object) méthode sur votre classe. En outre, vous devez surcharger le op_Equality et op_Inequality opérateurs. Cela garantit que tous les tests d’égalité retournent des résultats cohérents.

System_CAPS_noteRemarque

Pour plus d’informations sur la substitution Equals(Object), consultez la Object.Equals(Object) l’article.

Pour un type valeur, vous devez toujours implémenter IEquatable<T> et substituer Object.Equals(Object) pour de meilleures performances. Object.Equalszones de types valeur et repose sur la réflexion pour comparer deux valeurs sont égales. Votre mise en œuvre de Equals et la substitution de Object.Equals doit retourner des résultats cohérents.

Si vous implémentez IEquatable<T>, vous devez également implémenter IComparable<T> si les instances de votre type peuvent être ordonnées ou triées. Si votre type implémente IComparable<T>, vous devez également implémenter IEquatable<T>.

Consultez l’exemple de la IEquatable<T>.Equals (méthode).

Plateforme Windows universelle
Disponible depuis 8
.NET Framework
Disponible depuis 2.0
Bibliothèque de classes portable
Pris en charge dans : plateformes .NET portables
Silverlight
Disponible depuis 2.0
Silverlight pour Windows Phone
Disponible depuis 7.0
Windows Phone
Disponible depuis 8.1
Retour au début
Afficher: