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

Windows Forms Discussion :

[C#] Collections (ArrayList)


Sujet :

Windows Forms

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 57
    Par défaut [C#] Collections (ArrayList)
    Bonjour,

    j'ai définit une ArrayList:
    private System.Collections.ArrayList collection = new System.Collections.ArrayList();

    puis j'ai codé ces lignes:

    Mon objet voiture contient deux attributs :
    - Marque (string)
    - Prix (int)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    Voiture v1 = new Voiture("Renault",50000);
    			collection.Add(v1);
     
    			Voiture v2 = new Voiture("Toyota",40000);
    			collection.Add(v2);
     
    			Voiture v3 = new Voiture("Ford",30000);
    			collection.Add(v3);
    J'aimerai maintenant, faire une "recherche" dans ma collection et obtenir l'objet correspondant à: "Toyota" , du style:

    Voiture maVoiture = collection.get("Toyota");

    Je n'arrive pas à faire celà, est-ce possible ?

    Merci beaucoup,

    Fabrice

  2. #2
    Expert confirmé
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Par défaut
    faire une boucle...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while (cond)
    if (collection[i] == "Toyota")
    // Changer de voiture :D

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 57
    Par défaut
    heu ... ça marche pas
    Voiture est un objet comprenent deux attributs
    - Marque (string)
    - Prix (int)

    Et c'est l'objet Voiture que j'ajoute dans mon arraylist

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Par défaut
    Ben après faut programmer un peu quand même :)

    Bon, je m'ennuie un peu alors hop :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Voiture FindByMarque( ArrayList collection, string marque)
    {
      foreach ( Voiture tuture in collection )
      {
        if ( tuture.Marque == marque)
        {
          return tuture;
        }
     
        return null;
      }
    }

  5. #5
    Expert confirmé
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    while (cond)
    {
    if (((Voiture)collection[i]).Marque  == "Toyota") 
    // ...
    i++;
    }
    collection[i] te renvoie un object il faut le caster.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 57
    Par défaut
    aie ... il faut faire une boucle et recaster à chak fois ?
    Je n'osais pas le faire, me disant que c'était pas assez optimisé ... si ?

    MERCI beaucoup pour votre aide !

    Fab

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 31
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Voiture FindByMarque( ArrayList collection, string marque) 
    { 
      foreach ( Voiture tuture in collection ) 
      { 
        if ( tuture.Marque == marque) 
        { 
          return tuture; 
        } 
     
        return null; 
      } 
    }
    Hum hum, petite erreur.
    Comme ca c'est mieu.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Voiture FindByMarque( ArrayList collection, string marque) 
    { 
      foreach ( Voiture tuture in collection ) 
      { 
        if ( tuture.Marque == marque) 
        { 
          return tuture; 
        } 
      } 
      return null; 
    }

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Par défaut
    Ah vi, faut dire que j'ai ajouté la méthode autour après-coup :)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 14/07/2011, 22h58
  2. Réponses: 1
    Dernier message: 26/08/2009, 08h52
  3. les collections Arraylist
    Par laredo dans le forum Débuter
    Réponses: 2
    Dernier message: 19/09/2008, 17h35
  4. Réponses: 5
    Dernier message: 27/02/2008, 17h27

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