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 :

ArrayList dans un ArrayList


Sujet :

C#

  1. #1
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    218
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 218
    Points : 72
    Points
    72
    Par défaut ArrayList dans un ArrayList
    Est-ce quelqu'un sait comme puis-je afficher le contenu d'un arraylist qui se trouve dans un arraylist ?

  2. #2
    Membre expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Points : 3 015
    Points
    3 015
    Par défaut
    Je comprends pas Tu veux dire quoi ?

  3. #3
    En attente de confirmation mail
    Inscrit en
    Août 2006
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Août 2006
    Messages : 550
    Points : 669
    Points
    669
    Par défaut
    Qu'entends-tu par afficher ?

    Tu peux récuperer l'instance de ton arraylist qui se trouve dans ton arraylist avec une variable tout simplement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim arrValeurs As Arraylist
     
    ' Récupération d'une arraylist dans une arraylist
    arrValeurs = arrContenant(0)

  4. #4
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    218
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 218
    Points : 72
    Points
    72
    Par défaut
    Well, J'ai un arraylist qui contient sequentiellement un nom suivi d'un arraylist
    contenant plusieurs elements cad

    ArrayList1(nom, ArrayList2)

    Comment puis-je afficher le contenu de ArrayList2 ??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
         foreach (object o in arraylist1)
                    DTD += " " + o.ToString() + " ";
          Console.WriteLine(DTD);
    Ce code me donne le contenu de arraylist1, donc (nom et System.Collections.ArrayList) .. je veux pouvoir acceder aux elements de arraylist2. comment?

  5. #5
    En attente de confirmation mail
    Inscrit en
    Août 2006
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Août 2006
    Messages : 550
    Points : 669
    Points
    669
    Par défaut
    C'est pas très clair !!
    Tu veux afficher le contenu de ton arraylist2 dans un string ??

    Arraylist1 contient
    Indice 0 : Nom <- Type string
    Indice 1 : Arraylist2 <- Type arrayList

    Variable String DTD = Valeur Arraylist(0) + Valeur Arraylist(1) ?

    Y a quoi exactement dans Arraylist2 ?

  6. #6
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    218
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 218
    Points : 72
    Points
    72
    Par défaut
    Je suis en train de generer un DTD a partir d'un document XML.

    Je veux mettre dans cet arraylist:

    - le nom du parent suivi de
    - l'ensemble des fils de ce parent donc c'est un arraylist

    Arraylist1= (nom,[fils1, fils2, fils3,...])
    ArrayList2= [fils1, fils2, fils3,...]

    Je veux avoir comme resultat: fils1,fils2,fils3,..

  7. #7
    En attente de confirmation mail
    Inscrit en
    Août 2006
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Août 2006
    Messages : 550
    Points : 669
    Points
    669
    Par défaut
    Ok, et bien il te faut récupérer l'instance de ton arraylist

    Comme tu sais qu'elle se trouve en seconde position dans ta liste principale...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    // je declare une variable pour récupérer mon arraylist2
    Arraylist arraylist2 = arraylist1[1];
    foreach (object o in arraylist2)
                    DTD += " " + o.ToString() + " ";
          Console.WriteLine(DTD);
    Edit:
    Désolé si la syntaxe n'est pas correct, je developpe sous Vb...

  8. #8
    Membre expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Points : 3 015
    Points
    3 015
    Par défaut
    Une remarque tu peux aussi utiliser un Generic (enfin cela du framework que tu utilises) :

    Par exemple tu as à disposition un dictionnaire (Dictionary) qui représente une collection de clés et de valeurs. Ça pourrait être adapté à ce que tu veux faire. Avec le nom en clé et la liste des fils en valeur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dictionary< string, List<string> > monDicoPereFils = new Dictionary< string, List<string> > ();
    J'ai même utilisé un autre Generic (List<>) qui est une liste d'élément (fils1, fils2.. dans ton cas).

  9. #9
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    218
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 218
    Points : 72
    Points
    72
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
                for (int i = 0; i < children.Count;i++)
                {
     
                    if (children[i].GetType().ToString() == "System.Collections.ArrayList")
                    {
                        ArrayList arraylist2 = (ArrayList) children[i];
                        foreach (object o in arraylist2)
                            Console.WriteLine(" " + o.ToString() + " ");
                    }
     
                }
    ce code me retourne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    joueur 
     
    System.Collections.ArrayList

    J'ai pas pu acceder au contenu de cet ArrayList

  10. #10
    En attente de confirmation mail
    Inscrit en
    Août 2006
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Août 2006
    Messages : 550
    Points : 669
    Points
    669
    Par défaut
    Apparement tu as encore une arraylist dans ton arraylist2

  11. #11
    En attente de confirmation mail
    Inscrit en
    Août 2006
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Août 2006
    Messages : 550
    Points : 669
    Points
    669
    Par défaut
    La solution de binoo pour stocker tes valeurs sont effet plus adapté que les arraylist

  12. #12
    Membre éprouvé Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Points : 958
    Points
    958
    Par défaut
    Tu as de la chance de travailler en .NET, profites-en! Utilise des objets typés plutôt que des fourres-tout tels que les ArrayList.

    La suggestion de binoo est la bonne.

  13. #13
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    587
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Octobre 2006
    Messages : 587
    Points : 706
    Points
    706
    Par défaut
    Bonjour,

    Je suis aussi de l'avis de binoo, il vaut mieux utiliser une collection générique. Elle sont plus rapide qu'une ArrayList.

    J'avais fait un test entre une collection classique et générique. J'avais testé le remplissage et le parcours vide du tableau (foreach sans instruction à l'intérieur) avec 1 000 000 000 de valeurs à enregistrées. J'ai testé avec des entiers donc j'ai boxé pour la première collection.

    J'ai obtenu un rapport de 3-4 pour le remplissage et environ 30 pour le parcours de la collection. Les collections génériques sont fortement typées le gros avantage c'est que l'on a pas besoin de caster ou de unboxer pour obtenir une valeur et ça fait gagner du temps. J'utilise toujours ça dès que j'en ai l'occasion.

Discussions similaires

  1. Comment créer des ArrayList dans une ArrayList
    Par khadi8 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 07/05/2012, 08h20
  2. Stocker des ArrayList dans une ArrayList
    Par arno15 dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 22/11/2007, 16h41
  3. [Collections]Supprimer des doublons dans une ArrayList
    Par emie31 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 12/12/2005, 15h15
  4. [C#] [WinForms] Chercher, effacer dans un ArrayList
    Par stailer dans le forum Windows Forms
    Réponses: 4
    Dernier message: 11/10/2004, 17h26
  5. [JSP][BEAN]Récuperer des Beans dans un ArrayList
    Par Jones dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 30/08/2004, 11h22

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