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#] Ajout d'objet à un Arraylist


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2003
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 42
    Points : 31
    Points
    31
    Par défaut [C#] Ajout d'objet à un Arraylist
    Salut,

    Apparemment j'ai dû oublié quelques bases de programmation car j'ai un petit soucis qui paraît évident mais je me souviens plus et je ne trouve rien dessus. Mon problème est le suivant : j'ai un objet crée à partir d'une classe perso; je désire ajouter cet objet dans un Arraylist. Le soucis est que cet objet prend de nouvelles valeurs à au fur et à mesure du déroulement du code hors je voudrai conservé dans mon arraylist l'objet que j'ai à un instant t hors dans l'arraylist celui-ci évolue. Plus simplement je voudrai faire une copie de l'objet dans l'arraylist et pas une référence (comme pour les procédure auxquelles on peut passer un paramètre par valeur ou par référence). J'ai d'ailleurs le même problème quand j'essaye de faire une copie d'un objet de type X vers un autre objet de même type.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonArrayList.Add(MonObjet);
    Merci pour vos réponses (^_^)

  2. #2
    Membre émérite
    Avatar de lakitrid
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    1 535
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 535
    Points : 2 388
    Points
    2 388
    Par défaut
    Tu ajoute une methode Clone dans ta classe perso. Cette méthode clone l'objet (à toi de voir ce qu'il faut dupliquer comme données dans ta classe perso)

    Ensuite tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonArrayList.Add(MonObjet.Clone());
    Si tu fais ton clone correctement tu n'aura plus de problème.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Janvier 2003
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 42
    Points : 31
    Points
    31
    Par défaut
    cette méthode doit créer un nouvel objet de même type, instancié avec les valeurs de l'objet à cloner, j'ai juste? Ca existe pas directement sous .Net cette classe; je l'ai déjà utilisé pour des noeuds xml.

  4. #4
    Membre émérite
    Avatar de lakitrid
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    1 535
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 535
    Points : 2 388
    Points
    2 388
    Par défaut
    la mèthode Clone étant spécifique à chaque objet tu doit la faire pour tes user type. Notemment pour définir quels "variables" de la classe tu copie.
    Effectivement si tu as une arraylist dans ta classe, soit tu te paye la copie de chaque objet à l'intérieur, soit tu recopie directement la référence. ca dépend de ce que tu veux.
    (maintenant je peux aussi me tromper ou avoir oublié quelque chose)

  5. #5
    Nouveau membre du Club
    Inscrit en
    Janvier 2003
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 42
    Points : 31
    Points
    31
    Par défaut
    je vais tenter de créer cette function et je te tiens au courant merci pour l'idée.

  6. #6
    Membre actif
    Inscrit en
    Janvier 2004
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 208
    Points : 227
    Points
    227
    Par défaut
    j'ai du mal a suivre le sujet

    pour ma part en ce qui conserne la class que tu as crée avec des attributs eventuelle.

    lorsque que tu crée ton ArrayList et que tu y insere ton Obj de class

    a mesure que tu instancie, tu remplis ton Tableau qui est completement dynamique .

    pour exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ArrayList monTableau = New ArrayList();
    maClass jeTest = New maClass(data1,data2);
    monTableau.Add(jeTest);
     
    apres quoi si tu instancie de nouveau
    monTableau.Add(new maClass(data1,data2));
    ton Tableau il se remplit reste plus cas le travailler et tu conserve toujours les valeurs du tableau.

    faut savoir que la Class ArrayList te donne la possibilité de mettre n'inporte quoi comme obj et meme different dans le meme tableau.

    Reste qu'a traité l'extraction en fonction de obj lors de l'itération

    bon courage

  7. #7
    Nouveau membre du Club
    Inscrit en
    Janvier 2003
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 42
    Points : 31
    Points
    31
    Par défaut
    Le problème dans ton exemple c'est que je travaille avec l'objet et c'est son évolution dans le programme que je dois stocker dans mon arraylist pas une nouvelle instance de ce type d'objet.

  8. #8
    Nouveau membre du Club
    Inscrit en
    Janvier 2003
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 42
    Points : 31
    Points
    31
    Par défaut
    J'ai donc créer ma propre méthode clone() qui crée un ojet de même type à partir d'un objet ayant les mêmes propriétés, une copie donc en quelque sorte. Ca fonctionne correstement donc merci à tous.

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

Discussions similaires

  1. ajout d'objet dans ArrayList
    Par sos dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 03/04/2007, 21h03
  2. [swing] modifier l'ajout d'objet dans un JTable
    Par Invité dans le forum Composants
    Réponses: 2
    Dernier message: 17/05/2006, 13h02
  3. Réponses: 2
    Dernier message: 25/01/2006, 21h25
  4. [Vector] Ajouter un objet
    Par GLDavid dans le forum SL & STL
    Réponses: 3
    Dernier message: 14/12/2005, 13h29

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