Tri de Tableau en C#

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
Maud
Messages : 28
Inscription : 05 Fév 2020 14:30

Tri de Tableau en C#

Message par Maud » 02 Mars 2022 15:56

Bonjour à tous,

je n'ai pas l'habitude de manipuler de tableau et je suis un peu perdu pour faire un classement simple.
J'ai par exemple 4 équipes avec chacune un nombre de points et de but marqués:

Eq. PTS. buts
1. 6. 12
2. 10. 15
3. 2. 4
4. 6. 6

Je souhaiterai faire un classement trié par points puis par buts marqués, donc trié selon la colonne 2 puis 3.
Je ne sais pas dans quel sens partir, des listes ? tableau à 2 dimensions ?
ça m'a l'air simple, mais dès que je pars dans une direction, je bloque tout de suite...
(à la base j'ai un tableau pour chaque équipe qui contient leurs résultats,
j'ai essayer de faire un tableau de tableaux mais ce n'est peut être pas le plus simple)

Pouvez-vous m'aider?
Merci par avance

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6225
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Tri de Tableau en C#

Message par boubouk50 » 02 Mars 2022 16:19

Si tu tries un tableau, il faut que les autres soient "triés" de la même manière (donc pas un tri en fait).
Il y a plusieurs façons de faire, je t'en propose une.
Une classe Team qui contient (au moins) 3 données:
L'index de l'équipe, les nombre de points et le nombre de but.

Un tableau d'équipe qui contient les équipes.
3 fonctions de tris sur ce tableau, par Index, par But et par Point.
Comme ça tu tries les Teams, donc les attributs de Team restent ensemble puisque contenus dans une seule classe.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Maud
Messages : 28
Inscription : 05 Fév 2020 14:30

Re: Tri de Tableau en C#

Message par Maud » 02 Mars 2022 19:22

Merci pour ta réponse.
J'ai bien compris comment faire la classe Team contenant les différentes données a affecter pour chaque équipe.
Je comprend comment faire mon tableau d'équipes.

Est ce qu'il serait possible d'avoir un exemple de ses fameuses fonctions de tris à faire ensuite ?

Avatar de l’utilisateur
jmhoubre
Messages : 859
Inscription : 05 Oct 2019 22:05

Re: Tri de Tableau en C#

Message par jmhoubre » 03 Mars 2022 00:05

Je me suis servi de cela quand j'ai eu ce besoin : https://docs.microsoft.com/fr-fr/dotnet ... ew=net-6.0

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6225
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Tri de Tableau en C#

Message par boubouk50 » 03 Mars 2022 10:32

https://stackoverflow.com/questions/130 ... -class-ins
Il faut appeler la fonction Sort de Array avec un comparateur.

Code : Tout sélectionner

Array.Sort(myClassArray,
    delegate(MyClass x, MyClass y) { return x.Buts.CompareTo(y.Buts); });
Avec myClassArray un tableau de ta classe Team qui contient les champs entiers: int Index, int Buts et int Points.

Une fois le tableau trié par Index/Buts/Points, tu peux la lire dans un sens ou l'autre pour avoir un tri ascendant ou descendant.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Maud
Messages : 28
Inscription : 05 Fév 2020 14:30

Re: Tri de Tableau en C#

Message par Maud » 03 Mars 2022 20:28

Merci beaucoup pour vos réponses,
je pense que je vais réussir à faire ce que je souhaite. :-D

Juste pour info (même si je peux faire autrement pour mon problème actuel), est-il possible de trier un tableau sur 2 critères consécutifs: par exemple on trie par points en utilisant le code que vous m'avez montré en exemple mais en cas d'égalité pour ce critère on départage avec le critère suivant par exemple les buts ?

C'est juste pour savoir, votre aide a déjà permis de résoudre mon problème.
Merci encore

Avatar de l’utilisateur
jmhoubre
Messages : 859
Inscription : 05 Oct 2019 22:05

Re: Tri de Tableau en C#

Message par jmhoubre » 03 Mars 2022 23:21

Le principe de la solution est d'écrire une méthode de tri : dès lors, tu peux lui faire faire ce que tu veux.

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6225
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Tri de Tableau en C#

Message par boubouk50 » 04 Mars 2022 10:25

Le principe de la solution est d'écrire une méthode de tri : dès lors, tu peux lui faire faire ce que tu veux.
Comme dit, il te faut définir une fonction de comparaison (Ici c'est CompareTo () qui est utilisée) comme bon te semble.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Répondre

Revenir vers « Scripting »