Bonjour

Je me pose quelques questions sur le meilleurs usage de l'interface Icomparer et je pense que je n'ai pas bien capté qq chose

J'ai une classe adresse C_Adr
Pour pouvoir trier des liste de C_Adr, j'ai défini (en dehaos de C_Adr) une Classe C_AdrComparer héritant de IComparer

Donc quand je veux faire un tri, j'appelle

Code : Sélectionner tout - Visualiser dans une fenêtre à part
List.Sort(new C_AdrComparer());
Mais je dois aussi pouvoir comparer une adresse A avec une adresse B

Je peux evidemment utiliser une instance de C_AdrComparer et comparer A et B

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
C_AdrComparer Acompare=new C_AdrComparer();
int dif=Acompare(A,B);
Mais j'aurais préféré utiliser une methode CompareTo() définie dans ma classe Adresse

Donc ma question :
Quelle est la methode la plus elégante pour definir une seule methode de comparaison que je pourrais utiliser a la fois dans une Methode CompareTo et dans un Sort()

Actuellement je cree une instance de C_AdrComparer dans une methode publique CompareTo de C_Adr

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
    public int CompareTo(CDB_Adresse B)
    {
      C_AdrComparer cmp = new C_AdrComparer();
      return cmp.Compare(this,B);
    }
Est ce la meilleure maniere ?
Merci de vos conseils