2009-07-18 12 views

Répondre

4

Votre premier exemple ne fonctionnerait dans aucune langue car vous essayez de redéfinir la variable "i". C'est un int dans le contrôle de boucle, mais un string dans le corps de la boucle.

Sur la base de votre question mis à jour la solution la plus simple est d'utiliser un tableau (en C#):

string[] s = new string[10]; 
for (int i; i< 10; i++) 
{ 
    s[i] = "abc"; 
} 
0

Utilisez une sorte de eval si elle est disponible dans la langue.

0

Cela dépend de la langue.

Généralement, quand les gens veulent faire cela, la bonne chose est d'utiliser une structure de données telle qu'une table de hachage/dictionnaire/carte qui stocke les noms de clés et les valeurs associées.

3

De toute évidence, cela dépend fortement de la langue. Dans la plupart des langues, c'est impossible. En Javascript, dans un navigateur, les travaux suivants:

for (var i = 0; i<10 ; i++) { window["sq"+i] = i * i; } 

Maintenant, la SQ3 variable, par exemple, est fixé à 9.

+0

@Malvolio: +1 Bonne réponse –

11

Vous voulez probablement utiliser un tableau. Je ne sais pas exactement comment ils fonctionnent en C# (je suis un homme de Java), mais quelque chose comme cela devrait le faire:

string[] s = new string[10]; 
for (int i; i< 10; i++) 
{ 
    s[i] = "abc"; 
} 

Et lu http://msdn.microsoft.com/en-us/library/aa288453(VS.71).aspx

+3

+1 Juste pour comprendre ce que l'enfer OP parlait. –

3

Vous pouvez utiliser le dictionnaire. clé - Nom dynamique de l'objet Valeur - objet

 Dictionary<String, Object> dictionary = new Dictionary<String, Object>(); 
     for (int i = 0; i <= 10; i++) 
     { 
      //create name 
      string name = String.Format("s{0}", i); 
      //check name 
      if (dictionary.ContainsKey(name)) 
      { 
       dictionary[name] = i.ToString(); 
      } 
      else 
      { 
       dictionary.Add(name, i.ToString()); 
      } 
     } 
     //Simple test 
     foreach (KeyValuePair<String, Object> kvp in dictionary) 
     { 
      Console.WriteLine(String.Format("Key: {0} - Value: {1}", kvp.Key, kvp.Value)); 
     } 

Sortie:

Key: s0 - Value: 0 
Key: s1 - Value: 1 
Key: s2 - Value: 2 
Key: s3 - Value: 3 
Key: s4 - Value: 4 
Key: s5 - Value: 5 
Key: s6 - Value: 6 
Key: s7 - Value: 7 
Key: s8 - Value: 8 
Key: s9 - Value: 9 
Key: s10 - Value: 10 
Questions connexes