Comment trier un tableau de classes personnalisées?
J'ai une classe avec 2 cordes et 1 double (montant).
classe Donateur
- nom de la chaîne de
- chaîne de commentaire
- double montant
Maintenant, j'ai un Tableau de Donateurs rempli.
Comment je peux trier par Montant?
source d'informationauteur Kovu | 2010-03-18
Vous devez vous connecter pour publier un commentaire.
Si vous mettez en œuvre
IComparable<Donateur>
Vous pouvez le faire comme ceci:Vous pouvez ensuite appeler le tri sur ce que vous voulez, dire:
La
.Sort()
appelle laCompareTo()
de la méthode mise en œuvre pour le tri.Il y a aussi le lambda alternative sans
IComparable<T>
:Vous pouvez également utiliser les délégués:
Par la mise en œuvre de
IComparable
et ensuite utiliserArray.Sort
.Vous pouvez utiliser
MyArray.OrderBy(n => n.Amount)
si vous avez compris le Système.Linq espace de noms.
J'ai toujours utiliser la liste générique, par exemple
puis j'appelle ma liste.Trier
Ici est une sorte sans avoir à implémenter une Interface. C'est à l'aide d'une Liste Générique
Une autre façon est de créer une classe qui implémente l'interface IComparer, alors il y a une surcharge de passer dans le Comparateur de classe.
http://msdn.microsoft.com/en-us/library/8ehhxeaf.aspx
Cette façon, vous pourriez avoir des classes différentes pour chaque tri spécifique nécessaire. Vous pouvez créer un trier par nom, quantité, ou autres.