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
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
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
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
Partager