2010-02-25 2 views

Répondre

9

Une meilleure liste d'utilisation comme ceci:

List<string> names = new List<string>(); 
names.Add(name); ///whatever string you want to insert 

plus tard si vous avez besoin tableau de noms, appelez:

string[] arr = names.ToArray(); 

Si vous devez utiliser un tableau de chaînes, alors vous devriez connaître la taille dès le départ . Si vous ne connaissez pas la taille, vous pouvez initialiser un tableau de longueur par défaut (disons 10). Les choses que vous avez à faire sont:

  • Gardez le nombre de chaînes déjà ajoutées dans le tableau
  • Si elle atteint la longueur par défaut, vous avez re-initialiser le tableau avec une plus grande longueur (disons 15) et copiez toutes les chaînes existantes dans ce nouveau tableau.
  • Vous devez garder les contrôles des limites de ce tableau, vous ne voulez pas lire

à partir des indices que vous ne l'avez pas encore utilisé (par exemple, si l'indice est supérieur compte alors) Donc son mieux utilisez la liste plutôt que de faire tout cela par vous-même

6

Vous pouvez utiliser un List<string>, il va s'agrandir à mesure que vous ajoutez des éléments.

List<string> myList = new List<string>(); 
myList.Add("string1"); 
myList.Add("string2"); 

Il peut facilement être converti en un tableau si nécessaire:

string[] stringArray = myList.ToArray(); 

Si vous ne connaissez pas le nombre exact d'éléments que vous aurez besoin, un tableau ne peut pas être un bon choix, vous aurez besoin de le redimensionner (ce qui est une opération coûteuse).

+0

+1 pour la réponse la plus évidente, bien que vous devriez ajouter comment ajouter des éléments, puisque Gold l'a demandé explicitement :) – OregonGhost

+1

@OregonGhost - Waaay devant vous;) – Oded

0

J'utiliserais la classe List. Vous pouvez en ajouter autant que nécessaire sans avoir à savoir combien vous allez y mettre. Si vous avez une idée de ce qui se passera dans la liste, vous pouvez utiliser l'argument capacity du constructeur List pour éviter les problèmes de performance.

int capacity = 3; 
var listOfNames = List<string>(/* optional */ capacity); 
listOfNames.Add("My Name 1"); 
listOfNames.Add("My Name 2"); 
listOfNames.Add("My Name 3"); 

var namesArray = listOfNames.ToArray(); 

I a ajouté la ligne namesArray là-bas dans le cas où vous avez vraiment besoin d'un tableau au lieu d'une liste pour une raison quelconque.

Voir this page pour voir ce que tout ce que vous pouvez faire avec un List.

0

Vous pouvez utiliser ce qui suit, comme Oded mentionné ci-dessus (ou ci-dessous), il se développera automatiquement lorsque des éléments sont ajoutés.

List<String> l = new List<String>(); 

l.Add("your string here"); 

... Et si vous voulez itérer, puis:

foreach(string i in l) 
{ 
    // Do something with each item (i); 
} 

... Et d'avoir un tableau:

String[] a = 
    l.ToArray(); 
0

Utilisez List<T>. Par exemple.

var list = new List<string>(); 
list.Add("string1"); 

si vous avez besoin de la liste pour être un tableau, List<T> a une méthode ToArray().

En interne List<T> stocke les données sous la forme d'un tableau de chaînes. Lorsque plus d'espace est requis, il va allouer un nouveau tableau de doubler la taille du courant et copier toutes les références au nouveau tableau. C'est à dire. vous n'avez rien à faire, mais si le code est critique en termes de performances, vous pouvez fournir une capacité par défaut lors de la création de la liste.

0

ArrayList fera aussi l'affaire.

ArrayList alist = new ArrayList();

alist.Add (Chaîne1); alist.Add (String2)