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 :

Contenu List <T>


Sujet :

C#

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Contenu List <T>
    Bonjour,
    je dispose d'une méthode remplissant une List<T> avec différents objets métiers et j'aimerais connaitre le type de ces objets.

    Ainsi ma liste de matériel contient des chaussures, des couteaux, des casseroles.

    Je crée donc un objet chaussure (dérivant de matériel) et je l'ajoute à ma liste, ainsi qu'un objet couteau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    List<Materiel> list = new List<Materiel>();
     
    Chaussure shoe = new Chaussure();
    shoe.id = "01";
    shoe.code = "0142xx";
    list.Add(shoe);
     
    Couteau cut = new Couteau();
    cut.id = "02";
    cut.code = "0277yy";
    list.Add(cut);
    Ma liste contient donc shoe (type Chaussure) et cut (type Couteau).
    J'arrive à afficher le contenu de ma liste sans problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Console.WriteLine("Materiel : {0} = {1}, shoe.id, shoe.code)
    J'aimerais à présent afficher le type contenu dans ma liste !

    J'aimerais donc pouvoir afficher "Materiel "id" = "code" de type "Chaussure/Couteau""

    Mais je ne sais comment faire!

    Merci d'avance!

  2. #2
    Membre confirmé Avatar de Jabbal'H
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 403
    Points : 580
    Points
    580
    Par défaut
    C'est bien le type d'objet au sens c# que tu souhaite ?
    " Je préfère comprendre les gens qui ne me comprennent pas "

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juin 2010
    Messages : 210
    Points : 243
    Points
    243
    Par défaut
    bonjour,

    je pense qu'il veut le type de l'object qui se trouve dans sa liste.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    foreach (Matériel MyMatériel in list)
    {
      if (typeof(MyMatériel ) == Chaussure)
      {
        //code
      }
      if (typeof(MyMatériel ) == Couteau)
      {
        //code
      }
    }

    Je ne suis pas certain de la syntaxe du code. A tester..

  4. #4
    Membre confirmé Avatar de Jabbal'H
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 403
    Points : 580
    Points
    580
    Par défaut
    Tu peux également déclarer une méthode abstraite dans ta classe parente qui te renvois une description de ton type, ou une valeur d'une enum , etc ...
    " Je préfère comprendre les gens qui ne me comprennent pas "

  5. #5
    Max
    Max est déconnecté
    Expert éminent sénior

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Points : 14 979
    Points
    14 979
    Par défaut
    Salut.

    Plusieurs possibilités. Pour afficher le type tu peux passer par un objet Type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list.ForEach(materiel => Console.WriteLine("Materiel : \"{0}\" = \"{1}\", de type \"{2}\"", materiel.id, materiel.code, arr.GetType().Name));
    Ou bien comme l'a suggéré Jabbal'H, utiliser une méthode abstraite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public abstract class Materiel {
    	public abstract string GetName();
    }
     
    public class Chaussure 
    	: Materiel {
        public override string GetName() { return "Je suis une chaussure !"; }
    }
     
    public class Couteau 
    	: Materiel {
        public override string GetName() { return "Je suis un couteau qui coupe !"; }
    }
    Ce qui donnerait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list.ForEach(materiel => Console.WriteLine("Materiel : \"{0}\" = \"{1}\", de type \"{2}\"", materiel.id, materiel.code, arr.GetName()));
    Ce ne sont que des exemples

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/06/2008, 08h02
  2. Contenu Liste déroulante
    Par Itori dans le forum Access
    Réponses: 6
    Dernier message: 26/09/2006, 15h39
  3. Réponses: 8
    Dernier message: 16/06/2006, 18h48
  4. mise à jour contenu liste
    Par moicats dans le forum Access
    Réponses: 11
    Dernier message: 24/05/2006, 09h20
  5. Modifier contenu liste.
    Par Michel Hubert dans le forum Access
    Réponses: 3
    Dernier message: 11/05/2006, 16h45

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