[Résolu] [C#] Déclaration de tableaux d'objets à taille inconnue

Déclaration de tableaux d'objets à taille inconnue [Résolu] [C#] - C#/.NET managed - Programmation

Marsh Posté le 30-06-2005 à 16:37:41    

Bonjour,
 
Je suis face à un problème en Visual C# auquel je ne trouve pas de solution apres de nombreuses recherches. Pourtant je sais que c'est possible.
 
J'explique :  
Je voudrais déclarer un tableau d'objets d'un type non standard. Mais je ne connais pas sa taille par avance, il sera rempli par la suite.
 
Exemple : si je connais la taille par avance, je ferai qqch comme :
 
Montype[] tabl = new Montype[5];
 
Comment faire la meme chose en laissant une taille non définie ?
 
Merci
Jérémy


Message édité par outdial le 30-06-2005 à 17:54:38
Reply

Marsh Posté le 30-06-2005 à 16:37:41   

Reply

Marsh Posté le 30-06-2005 à 16:39:07    

Regarde du côté des ArrayList par exemple

Reply

Marsh Posté le 30-06-2005 à 16:45:30    

Oui mais en fait ce type je ne l'ai pas choisi mais je suis contraint de l'utiliser pour remplir mon tableau, pour pouvoir le passer ensuite à une méthode d'une API que je ne peux pas modifier...
 
Est ce qu'il est possible éventuellement de convertir un ArrayList vers le type que je veux ?

Reply

Marsh Posté le 30-06-2005 à 16:47:20    

Oui, tu peux copier une ArrayList dans un tableau, y'a une méthode dans ArrayList pour ça :)

Reply

Marsh Posté le 30-06-2005 à 17:03:04    

ArrayList ou new T[n] et voilà.

Reply

Marsh Posté le 30-06-2005 à 17:09:41    

Merci.
 
Mais si je fais :
 
ArrayList test = new ArrayList();
Keyword[] kList = test.ToArray(Keyword);
 
(Keyword, c'est mon type...)
Ca me sort une erreur. Et si je fais :
 
object[] kList = test.ToArray();
 
Ca ne va pas car je ne peux pas caster en Keyword par la suite pour remplir les éléments de mon tableau.
 
Une idée ?

Reply

Marsh Posté le 30-06-2005 à 17:53:24    

C'est bon, il fallait ruser un peu et utiliser :
 
Keyword[] kList = (Keyword[]) test.ToArray(typeof (Keyword));
 
Merci de ton aide FlorentG.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed