Réponse acceptée !
En créant un sorter perso implémentant
IComparer.
Petit exemple vite fait :
Sorter :public enum PersonneSortMember
{
Nom,
Prenom,
Age
}
public class PersonneSorter : IComparer
{
public PersonneSorter ( PersonneSortMember sortBy )
{
m_sortBy = sortBy;
}
private PersonneSortMember m_sortBy;
#region Membres de IComparer
public int Compare(
object x,
object y)
{
Personne xPersonne = (Personne)x;
Personne yPersonne = (Personne)y;
int result = 0;
switch ( m_sortBy )
{
case PersonneSortMember.Nom:
result = xPersonne.nom.CompareTo(yPersonne.nom);
break;
case PersonneSortMember.Prenom:
result = xPersonne.prenom.CompareTo(yPersonne.prenom);
break;
case PersonneSortMember.Age:
result = xPersonne.age.CompareTo(yPersonne.age);
break;
}
return result;
}
#endregion
}
Utilisation : liste.Sort(
new PersonneSorter(PersonneSortMember.Nom));
liste.Sort(
new PersonneSorter(PersonneSortMember.Prenom));
liste.Sort(
new PersonneSorter(PersonneSortMember.Age));
Cocoricoooooooo !!!!
coq
MVP Visual C#