Est-ce quelqu'un sait comme puis-je afficher le contenu d'un arraylist qui se trouve dans un arraylist ?
Est-ce quelqu'un sait comme puis-je afficher le contenu d'un arraylist qui se trouve dans un arraylist ?
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)
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 ??
Ce code me donne le contenu de arraylist1, donc (nom et System.Collections.ArrayList) .. je veux pouvoir acceder aux elements de arraylist2. comment?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 foreach (object o in arraylist1) DTD += " " + o.ToString() + " "; Console.WriteLine(DTD);
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 ?
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,..
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...
Edit:
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);
Désolé si la syntaxe n'est pas correct, je developpe sous Vb...
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.
J'ai même utilisé un autre Generic (List<>) qui est une liste d'élément (fils1, fils2.. dans ton cas).
Code : Sélectionner tout - Visualiser dans une fenêtre à part Dictionary< string, List<string> > monDicoPereFils = new Dictionary< string, List<string> > ();
ce code me retourne :
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() + " "); } }
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
Apparement tu as encore une arraylist dans ton arraylist2
La solution de binoo pour stocker tes valeurs sont effet plus adapté que les arraylist
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.
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.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager