Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1553 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Methode de Tri par ordre alphabétique [Résolu]

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Methode de Tri par ordre alphabétique [Résolu]

n°2032514
askior
Posté le 27-10-2010 à 10:59:08  profilanswer
 

Bonjour, bonjour.
 
Tout d'abords je suis nouveau ici (comme dans le métier, donc pardonnez moi si je ne comprends pas tout directement), et je sais pas bien comment ça marche, je m'excuse si un sujet existe déjà, mais la recherche n'a pas l'air de vouloir fonctionner.
 
Donc comme indiquer dans le titre, je cherche une méthode de tri par ordre alphabétique. Mais une méthode hein, pas un truck tout fais, aucun intérêt pour mes études sinon ^^.
 
Voilà le topo:  
Le but de mon programme est de crée une interface pour entrer des humains voulant prendre l'avion (c'est un exercice). J'ai donc déjà crée la méthode toussa, je peux entrer donc le nom, le prénom, l'age, le numéro de téléphone. Et j'aimerais que pendant la restitution de données, il me tri les personnes par ordre alphabétique.
 

Spoiler :


namespace Personne
{
    class Program
    {
        /// <summary>
        /// Constructeur Classe Personne
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            int g = 0;
            string s1, s2;//Initialise s1
            Personne personne;
            Console.WriteLine("Souhaitez vous faire une saisie de donnees?" );
            s1 = Console.ReadLine();//récupère s1
 
            List<Personne> Personnes = new List<Personne>(); //Création de la liste Avion
            if (s1 == "non" ) Console.WriteLine("D'accord" );//Arret
            else if (s1 == "oui" ) do // Boucle
                {
                    personne = new Personne();
                    Console.WriteLine("Entrer le Nom : " );
                    personne.Nom = Console.ReadLine();
 
                    Console.WriteLine("Entrer le Prenom : " );
                    personne.Prenom = Console.ReadLine();
 
                    Console.WriteLine("Entrer l'age : " );
                    personne.Age = Convert.ToInt32(Console.ReadLine());
 
                    Console.WriteLine("Entrer le numero de telephone : " );
                    personne.Telephone = Convert.ToInt32(Console.ReadLine());
 
                    Personnes.Add(personne); // Ajoute une personne à la liste
 
                    g++;
 
                    Console.WriteLine("Souhaitez-vous continuer votre saisie de donnée? : " );
 
                    s2 = Console.ReadLine();
                    if (s2 == "non" ) break;
                    else if (s2 == "oui" ) continue;
                }
                while (s1 == "oui" );
 
            {
                foreach (Personne u in Personnes)
                {
                    Afficheur(u);
                }
            }
        }
 
        /// <summary>
        /// Methode Afficheur
        /// </summary>
        /// <param name="args"></param>
        static void Afficheur(Personne args)
        {
                Console.WriteLine("Voici vos informations : " );
 
                Personne Personne = args;
 
                Console.WriteLine("Nom : " + Personne.Nom);
                Console.WriteLine("Prenom : " + Personne.Prenom);
                Console.WriteLine("Age : " + Personne.Age);
                Console.WriteLine("Telephone: " + Personne.Telephone);
 
                System.Console.ReadKey();
        }
    }
}


 
Voilà. Donc si quelqu'un sais me donner quelque chose mais pas intégrer, du moins pas directement, ou même des liens, je suis preneur.
 
Merci.


Message édité par askior le 08-11-2010 à 10:17:35
mood
Publicité
Posté le 27-10-2010 à 10:59:08  profilanswer
 

n°2032899
jeff@be
Posté le 28-10-2010 à 16:21:26  profilanswer
 

Tu dois utiliser ta propre fonction de comparaison, par exemple dans ta classe Personne:
 

Code :
  1. public static int CompareNomPersonne(Personne personne1, Personne personne2) {
  2.     return personne1.Nom.CompareTo(personne2.Nom);
  3. }


 
et avant d'afficher ta liste par le foreach, tu utilises ta fonction de tri:

Code :
  1. Personnes.Sort(Personne.CompareNomPersonne);

n°2034587
askior
Posté le 08-11-2010 à 10:16:51  profilanswer
 

C'est simple et efficace ta méthode jeff.  
Au final, ma fonction de tri se présente comme ça :

Code :
  1. Console.WriteLine("Liste triée par nom:" );
  2.                 Personnes.Sort(delegate(Personne p1, Personne p2) { return p1.nom.CompareTo(p2.nom); });
  3.                 Personnes.ForEach(delegate(Personne p) { Console.WriteLine(String.Format("{0} {1} {2} {3}",p.nom,p.prenom,p.age,p.telephone)); });


 
Encore merci ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Methode de Tri par ordre alphabétique [Résolu]

 

Sujets relatifs
Plantage aléatoire d'excel avec methode SORTAméliorer une macro: copier des valeurs sr plusieurs fl en ordre crois
[SDL] meilleure méthode?Méthode d'internationalisation
Tri d'objet pointé dans un tableauParamètre "selected" d'une liste déroulante : méthode rapide ?
Pb de méthode virtuelle sur Interface[Résolu] Ordre d'exécution dans un .bat
Tableau : Tri à Bulles[Javascript] Méthode générée dynamiquement
Plus de sujets relatifs à : Methode de Tri par ordre alphabétique [Résolu]


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR