[C#] Trier un tableau d'objet

Trier un tableau d'objet [C#] - C#/.NET managed - Programmation

Marsh Posté le 23-03-2013 à 16:27:34    

Bonjour,
Avant toute chose, je suis débutant en C# et je n'ai pas trouvé une solution convenable lors de mes recherches.
 
Je dispose donc d'un tableau d'objet que je simplifie pour l'exemple  :

Code :
  1. Joueur[] tabJoueurs = new Joueur[100];
  2. tabJoueurs[classement] = new Joueur(nom, prenom, pays, points, classement);


 
Et je recherche une technique pour trier ces objets dans l'ordre décroissant des points, autrement dit, le joueur avec le plus de points doit être premier au classement et ainsi de suite. J'ai déjà réussi à créer une méthode (Permuter(obj1, obj2)) qui me permet d'inverser 2 objets entre eux, il me reste à l'implémenter.
 
Comment dois-je m'y prendre pour trier ce tableau sachant qu'il ne s'agit pas d'une liste et que par conséquent je ne peux pas utiliser le ".Sort()"
 
Merci

Reply

Marsh Posté le 23-03-2013 à 16:27:34   

Reply

Marsh Posté le 23-03-2013 à 18:57:06    

Reply

Marsh Posté le 23-03-2013 à 19:00:11    

Bonjour,
 
Burned mais comme je te faisais l'exemple avec ton cas, je poste quand même  [:benou_grilled]  
tu peux le faire de deux façons :
 

Code :
  1. tabJoueurs = tabJoueurs.OrderByDescending(j => j.classement).ToArray();
  2. tabJoueurs= (from j in tabJoueurs orderby j.classement descending select j).ToArray();


Message édité par pvclunacy le 23-03-2013 à 19:01:45
Reply

Marsh Posté le 23-03-2013 à 20:08:13    

Petite précision : les messages ci-dessus valent pour la version >=3 du framwork.
 
Pour le faire en FW 2.0 ou inférieur, tu peux implémenter IComparer et appeler Sort (http://msdn.microsoft.com/en-us/library/234b841s.aspx).


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 24-03-2013 à 19:53:31    

C'est un exercice, je n'ai pas eu la possibilité d'utiliser Linq.
Je m'en suis sorti en effectuant un tri par sélection en fonction des points pour alimenter le classement (puis en effectuant une permutation d'objet).
Je posterai le code après la date de remise de l'exercice.
Merci à tous!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed