[C#] Arraylist ou tableau de String ?

Bsoir la zone,

je rencontre en ce moment un problème dans mon programme. Une des fonctions du programme doit extraire des flags dans un fichier de script. Un flag étant encadré par deux double quotes ’ " '.
Voici un exemple :

... $Flags: ( "player_ship" "default_player_ship" "fighter" "in tech database") ...

Ce bout de code peut aussi etre écrit de cette façon :

Mon problème maintenant, est de savoir quel type correspondrait au mieux pour stocker uniquement les flags “player_ship”, “default_player_ship”, etc… Devrais je prendre une arraylist ? une list générique ou bien un tableau de string ?
On ne connait rien du nombre de flags à relever. Du coup, je dois avoir un espace dynamique pour stocker tous ces champs. Et là, je ne sais pas trop comment m’y prendre.

Voilà.

Comme tu sais pas la taille de stockage tu peux pas utiliser de tableaux

Ensuite ça dépends comme tu accedes a tes éléments stockés:

  • sequentiellement => liste
  • par « position » => arraylist
  • nawakement (recheche par nom ou truc du style) => une hashtable ça peut être pas mal, faut voir si ça vaut la peine.

My 2 cents comme on dis :stuck_out_tongue:

moi je vote arraylist. Sinon Dadal a bien resume l’utilisation pour chaque.

Et n’oublions pas List

Dans ton cas, le plus approprié me semble être la liste générique : List

tableau de string !

\o/

HAHAHAHAHahahahaha mmenfin trop bonne celle la , je pensais faire la meme vanne :stuck_out_tongue:

Ok, merci bien, maintenant, j’espère pouvoir parser ces flags sans trop de difficulté :stuck_out_tongue:

bah deja on code pas a 1h du mat, sinon on efface un blog par inadvertance :stuck_out_tongue:

Je remonte le topic étant donné que j’ai un problème similaire mais cette fois, c’est un peu plus compliqué.
Actuellement, j’ai 2 Arraylists sachant qu’une des 2 est le fils de l’autre. Ce qui me fournit donc une Arraylist qui contient plusieurs Arraylists.

Je ne sais pas si je me suis fait comprendre, mais voici le problème :

[code]Arraylist new_itineraire = new Arraylist();

for(int cpt = 0; cpt < max; cpt++)
{
Arraylist zone = new Arraylist();
zone.Add(id_rendezvous);
zone.Add(id_zone);
zone.Add(offset_debut);
zone.Add(offset_fin);
new_itineraire.Add(zone);
}[/code]

Par la suite, je veux récupérer le contenu de new_itineraire[index]. ici, il s’agit des 4 données de l’arraylist anciennement appelé zone. J’ai beau faire un new_itineraire[index][sous_index] mais l’intellisense ne veut rien savoir. Donc je suppose que c’est pas la peine d’utiliser une Arraylist.

J’aimerais bien savoir quel type serait le plus adéquat à mon problème ?

Si tu bosses avec le framework .NET 2.0, je te conseille l’utilisation des List.

Ton problème vient du fait que l’ArrayList est une collection d’object. Lorsque tu accèdes au i-ème élement tu récupères donc une référence de type Object et non pas une référence vers une ArrayList.

Donc la solution est de caster l’objet retourner par new_itineraire[index] en ArrayList

Avec une List<List> ce genre de problème ne se posent pas car la liste est typée et renvoie donc des List. De plus, le cast est une opération assez lourde et donc si tu peux l’éviter c’est mieux.

Voici un petit exemple :

[code]List<List> new_itineraire = new List<List>;

for(int cpt = 0; cpt < max; cpt++)
{
List zone = new List();
zone.Add(id_rendezvous);
zone.Add(id_zone);
zone.Add(offset_debut);
zone.Add(offset_fin);
new_itineraire.Add(zone);
}

string value = new_itineraire[0][0];[/code]

Merci bien, je testerai ça une fois au taffe ><.