Ich möchte eine Var in einer for-Schleife, z.Wie erstellt man Variablen mit dynamischen Namen in C#?
for(int i; i<=10;i++)
{
string s+i = "abc";
}
Dies sollte Variablen s0, s1, s2 ... bis s10 erstellen.
Ich möchte eine Var in einer for-Schleife, z.Wie erstellt man Variablen mit dynamischen Namen in C#?
for(int i; i<=10;i++)
{
string s+i = "abc";
}
Dies sollte Variablen s0, s1, s2 ... bis s10 erstellen.
Ihr erstes Beispiel würde in keiner Sprache funktionieren, da Sie versuchen, die Variable "i" neu zu definieren. Es ist ein int
in der Schleifensteuerung, aber ein string
im Körper der Schleife.
Basierend auf Ihre Frage aktualisiert die einfachste Lösung ist ein Array (in C#) zu verwenden:
string[] s = new string[10];
for (int i; i< 10; i++)
{
s[i] = "abc";
}
Verwenden irgendeine Art von eval
, wenn es in der Sprache zur Verfügung steht.
Dies hängt von der Sprache ab.
Wenn Menschen dies möchten, ist es normalerweise richtig, eine Datenstruktur wie Hashtabelle/Dictionary/Map zu verwenden, die Schlüsselnamen und zugehörige Werte speichert.
Offensichtlich hängt dies stark von der Sprache ab. In den meisten Sprachen ist es unmöglich. In Javascript, in einem Browser die folgenden Werke:
for (var i = 0; i<10 ; i++) { window["sq"+i] = i * i; }
Nun ist die Variable sq3 zum Beispiel wird auf 9.
@Malvolio: +1 Gute Antwort –
Sie wahrscheinlich ein Array verwenden möchten. Ich weiß nicht genau, wie sie in C# arbeiten (Ich bin ein Java-Mann), aber so etwas wie dies sollte es tun:
string[] s = new string[10];
for (int i; i< 10; i++)
{
s[i] = "abc";
}
Und http://msdn.microsoft.com/en-us/library/aa288453(VS.71).aspx
+1 Nur um herauszufinden, was zur Hölle die OP hat darüber gesprochen. –
Sie lesen Wörterbuch verwenden. Key - dynamische Name des Objekts Value - Objekt
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));
}
Ausgang:
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
Welche Sprache arbeiten Sie? – ChrisF
Meinst du einen dynamischen Typ? – exclsr
Bitte geben Sie den Kontext an ... –