Quelle est la différence entre IEqualityComparer<T>, et IEquatable<T>?

Je veux comprendre les scénarios où IEqualityComparer<T> et IEquatable<T> doit être utilisé.
La documentation MSDN pour les deux l'air très similaires.

  • MSDN sez:"Cette interface permet la mise en œuvre de l'égalité de comparaison pour les collections." qui, bien sûr, est déduit de la réponse choisie. MSDN recommande également hériter de EqualityComparer<T> au lieu de la mise en œuvre de l'interface "parce que EqualityComparer<T> tests d'égalité à l'aide de IEquatable<T>
  • ... ci-dessus suggère que je devrais créer une collection personnalisée pour toute T la mise en œuvre de IEquatable<T>. Serait une collection comme List<T> avoir une sorte de bug subtil de il autrement?
  • bonne explication anotherchris.net/csharp/...
InformationsquelleAutor Tilak | 2012-02-16