IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Ajout automatique d'éléments dans une liste de type personnalisé


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Comptable en formation en informatique
    Inscrit en
    Août 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Comptable en formation en informatique

    Informations forums :
    Inscription : Août 2015
    Messages : 21
    Par défaut Ajout automatique d'éléments dans une liste de type personnalisé
    Madame, Monsieur Bonjour,

    J'ai créé un programme qui permet d'avoir des renseignements sur les pays du Monde, dont voici le code :

    Class Monde :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
     
    using System;
     
    namespace prjWorld
    {
    	/// <summary>
    	/// Description of Monde.
    	/// </summary>
    	public class Monde
    	{
    		//constructeur par défaut
    		public Monde()
    		{
     
    		}
     
    		//données de la classe
    		private string _Pays;		
    		public string Pays 
    		{
    			get { return _Pays; }
    			set { _Pays = value; }
    		}
     
    		private string _Capitale;		
    		public string Capitale 
    		{
    			get { return _Capitale; }
    			set { _Capitale = value; }
    		}		
     
    		private int _Superficie;		
    		public int Superficie 
    		{
    			get { return _Superficie; }
    			set { _Superficie = value; }
    		}
     
    		private double _PopulationTotale;		
    		public double PopulationTotale 
    		{
    			get { return _PopulationTotale; }
    			set { _PopulationTotale = value; }
    		}		
     
    		private double _PIBparHabitant;		
    		public double PIBparHabitant 
    		{
    			get { return _PIBparHabitant; }
    			set { _PIBparHabitant = value; }
    		}		
     
    		private string _LangueOfficielle;		
    		public string LangueOfficielle 
    		{
    			get { return _LangueOfficielle; }
    			set { _LangueOfficielle = value; }
    		}		
     
    		private string _AutresLangues;		
    		public string AutresLangues 
    		{
    			get { return _AutresLangues; }
    			set { _AutresLangues = value; }
    		}
     
    		private string _Continent;		
    		public string Continent 
    		{
    			get { return _Continent; }
    			set { _Continent = value; }
    		}
     
    		//constructeur alternatif
    		public Monde(string Pays, string Capitale, int Superficie, double PopulationTotale, double PIBparHabitant, string LangueOfficielle, string AutresLangues, string Continent)
    		{
    			_Pays = Pays;
    			_Capitale = Capitale ;
    			_Superficie = Superficie;
    			_PopulationTotale=PopulationTotale;
    			_PIBparHabitant = PIBparHabitant;
    			_LangueOfficielle = LangueOfficielle;
    			_AutresLangues = AutresLangues;
    			_Continent = Continent;
    		}
     
    		//méthode affichant les données de pays
    		public void Affichage()
    		{
     
    			Console.WriteLine("\nPays : {0}\nCapitale : {1}\nSuperficie : {2} km2\nPopulationTotale : {3} mios\nPIB par habitants : {4} USD\nLangue officielle : {5}\nAutres langues parlées : {6}\nContinent : {7}\n"
    			                  ,Pays, Capitale, Superficie, PopulationTotale, PIBparHabitant, LangueOfficielle, AutresLangues, Continent);			                  			                  
    		}
    	}
    }
    Program.cs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
     
    using System;
    using System.Collections.Generic;
     
     
     
    namespace prjWorld
    {
    	class Program
    	{
    		public static void Main(string[] args)
    		{
     
    		//création des pays du Monde
    		Monde Suisse = new Monde("Suisse", "Berne", 41285, 8.211681, 87475.464, "Français, Allemand, Italien, Romanche", "Aucune", "Europe");
    		Monde Vietnam = new Monde("Vietnam", "Hanoï", 331212, 94.348832, 1910.51, "Vietnamien", "Aucune", "Asie");
    		Monde Australie = new Monde("Australie", "Camberra", 7686850, 22.751014, 61219, "Anglais", "Aucune", "Océanie");	
    		Monde Canada = new Monde("Canada", "Ottawa", 9984670, 35.702707, 50397.862, "Anglais, Français", "Aucun", "Amérique du Nord");		
    		Monde France = new Monde("France", "Paris", 675000, 67.287441, 40374.529, "Français", "Aucune", "Europe");
    		Monde AfriqueSud = new Monde("Afrique du Sud", "Pretoria", 1219912, 51.770560, 6482.753, "Anglais", "Afrikaans, Zoulou", "Afrique");
     
     
    		//liste des pays		
    		List<Monde> World = new List<Monde>(197);
    			World.Add(Suisse);
    			World.Add(Vietnam);
    			World.Add(Australie);
    			World.Add(Canada);
    			World.Add(France);	
    			World.Add(AfriqueSud);
     
    		//création des listes de pays par continent
    		List<string> Asie = new List<string>();
    		List<string> Afrique = new List<string>();
    		List<string> AmeriqueNord = new List<string>();
    		List<string> AmeriqueSud = new List<string>();
    		List<string> Antarctique = new List<string>();
    		List<string> Europe = new List<string>();
    		List<string> Oceanie = new List<string>();
     
    		//affectation des pays aux continents		
    		foreach (Monde element in World) 
    		{				
    			switch(element.Continent)
    			{
    				case "Asie" : Asie.Add(element.Pays); break;
    				case "Afrique" : Afrique.Add(element.Pays); break;
    				case "Amérique du Nord" : AmeriqueNord.Add(element.Pays); break;
    				case "Amérique du Sud" : AmeriqueSud.Add(element.Pays) ;break;
    				case "Antarctique" : Antarctique.Add(element.Pays); break;
    				case "Europe" : Europe.Add(element.Pays); break;
    				default : Oceanie.Add(element.Pays); break;
    			}
    		}
    			//début du programme
    			Console.WriteLine("---------Les pays---------\n");
    			Console.WriteLine("VEUILLEZ ENTRER UN PAYS POUR PLUS D'INFORMATIONS\n");
    			Console.Write("Nom du pays : ");
    			string pays = Console.ReadLine();	
     
    			//affichage des données du pays entré par l'utilisateur			
    			foreach (Monde element2 in World)
    			{							
    				if (element2.Pays == pays)
    				{
    					element2.Affichage();
    				}
    				else Console.Write("");
    			}
     
    			Console.ReadLine();
    		}
    	}
    }


    Par contre, niveau sécurité, le fait de créer les pays dans la méthode Main ne me parait pas géniale. Qu'en pensez-vous ?

    De plus, je souhaiterai ajouter à ma liste "World" automatiquement les pays que j'ai créés au-dessus. Est-ce possible ?

    En vous remerciant d'avance de votre aide, je vous adresse mes meilleures salutations.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 123
    Par défaut
    Bonjour,

    Je pense que tu devrais commencer par nommer ta classe "Monde" autrement. Une classe "Pays" me parait plus appropriée (avec une propriété "Nom" plutôt que "Pays")
    Ensuite tes listes des continents ne servent à rien en l'état. Une simple requête Linq sur ta liste "world" te permet d'obtenir ça facilement.

    Edit : J'ai oublié une partie de la réponse...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    //création des pays du Monde	
    List<Pays> World = new List<Pays>();
    World.Add(new Pays("Suisse", "Berne", 41285, 8.211681, 87475.464, "Français, Allemand, Italien, Romanche", "Aucune", "Europe"));
    World.Add(new Pays("Vietnam", "Hanoï", 331212, 94.348832, 1910.51, "Vietnamien", "Aucune", "Asie"));
    World.Add(new Pays("Australie", "Camberra", 7686850, 22.751014, 61219, "Anglais", "Aucune", "Océanie"));
    World.Add(new Pays("Canada", "Ottawa", 9984670, 35.702707, 50397.862, "Anglais, Français", "Aucun", "Amérique du Nord"));
    World.Add(new Pays("France", "Paris", 675000, 67.287441, 40374.529, "Français", "Aucune", "Europe"));	
    World.Add(new Pays("Afrique du Sud", "Pretoria", 1219912, 51.770560, 6482.753, "Anglais", "Afrikaans, Zoulou", "Afrique"));
    Cordialement

  3. #3
    Membre averti
    Homme Profil pro
    Comptable en formation en informatique
    Inscrit en
    Août 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Comptable en formation en informatique

    Informations forums :
    Inscription : Août 2015
    Messages : 21
    Par défaut
    Effectivement j'ai renommé ma classe comme indiqué.


    Niveau sécurité, serait-il plus judicieux de créer les pays en "private", puis de les ajouter à une liste "public" ?

    Merci d'avance pour votre réponse.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 123
    Par défaut
    Difficile de répondre à cette question sans connaitre le fonctionnement du programme.
    Cela dit, une liste publique contenant des objets privés n'aura que peu d'intérêt une fois sorti du cadre privé.

  5. #5
    Membre averti
    Homme Profil pro
    Comptable en formation en informatique
    Inscrit en
    Août 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Comptable en formation en informatique

    Informations forums :
    Inscription : Août 2015
    Messages : 21
    Par défaut
    D'accord.

    Pour l'instant cela me parait pas mal (pour un débutant...).

    Il me faudra du courage pour créer tous les pays

    Merci en tout cas pour ton aide et à bientôt.

  6. #6
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    salut

    pour créer déjà les pays et les capitales

    ==> https://fr.wikipedia.org/wiki/Liste_...tales_du_monde

    Comme ça, un copier coller et un peu de traitement, ca ira "presque" vite...

    voir là aussi (fichier XMl

    http://gabrielbraun.free.fr/TechWeb/...onde/monde.xml

Discussions similaires

  1. Réponses: 4
    Dernier message: 12/08/2015, 12h15
  2. [TPW] Erreur lors de l'ajout d'un élément dans une liste chaînée triée
    Par sangimed dans le forum Turbo Pascal
    Réponses: 5
    Dernier message: 18/01/2013, 21h37
  3. Ajout automatique d'item dans une liste
    Par tom974 dans le forum Développement Sharepoint
    Réponses: 6
    Dernier message: 01/10/2009, 11h16
  4. Ajout automatique d'item dans une liste
    Par tom974 dans le forum SharePoint
    Réponses: 6
    Dernier message: 01/10/2009, 11h16
  5. Réponses: 1
    Dernier message: 31/05/2009, 22h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo