Je veux créer un var dans une boucle for, par ex.Comment créer des variables avec des noms dynamiques en C#?
for(int i; i<=10;i++)
{
string s+i = "abc";
}
Ceci devrait créer les variables s0, s1, s2 ... à s10.
Je veux créer un var dans une boucle for, par ex.Comment créer des variables avec des noms dynamiques en C#?
for(int i; i<=10;i++)
{
string s+i = "abc";
}
Ceci devrait créer les variables s0, s1, s2 ... à s10.
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";
}
Utilisez une sorte de eval
si elle est disponible dans la langue.
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.
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.
@Malvolio: +1 Bonne réponse –
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
+1 Juste pour comprendre ce que l'enfer OP parlait. –
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
Quelle langue travaillez-vous? – ChrisF
Voulez-vous dire un type dynamique? – exclsr
S'il vous plaît spécifier le contexte ... –