forループでvarを作成したいとします。C#で動的名を使用して変数を作成する方法は?
for(int i; i<=10;i++)
{
string s+i = "abc";
}
これにより、変数s0、s1、s2 ...〜s10が作成されます。
forループでvarを作成したいとします。C#で動的名を使用して変数を作成する方法は?
for(int i; i<=10;i++)
{
string s+i = "abc";
}
これにより、変数s0、s1、s2 ...〜s10が作成されます。
最初の例は、変数 "i"を再定義しようとすると、どの言語でも機能しません。ループ制御ではint
ですが、ループ本体にはstring
です。最も簡単な解決策は、(C#の場合)配列を使用することで、あなたの更新の質問に基づいて
:それは言語で利用可能な場合
string[] s = new string[10];
for (int i; i< 10; i++)
{
s[i] = "abc";
}
はeval
のいくつかの並べ替えを使用してください。
これは言語によって異なります。
一般的に、これを行うには、キー名と関連する値を格納するハッシュテーブル/辞書/マップなどのデータ構造を使用するのが適切です。
明らかに、これは言語に大きく依存します。ほとんどの言語では、それは不可能です。 JavaScriptでは、ブラウザ、次の作品に:
今for (var i = 0; i<10 ; i++) { window["sq"+i] = i * i; }
変数SQ3、例えば、あなたはおそらく配列を使用したい9.
@Malvolio:+1丁寧な回答 –
に設定されています。私は(私は、Javaの男だ)彼らはC#で働く正確にどのように知りませんが、このようなものは、それを行う必要があります。
string[] s = new string[10];
for (int i; i< 10; i++)
{
s[i] = "abc";
}
、あなたは辞書を使用することができ http://msdn.microsoft.com/en-us/library/aa288453(VS.71).aspx
+1ちょうど地獄を理解するためにOPが話していた。 –
をお読みください。 キー - オブジェクト 値の動的な名前 - オブジェクト
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));
}
出力:
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
あなたが作業している何語? – ChrisF
ダイナミックタイプを意味しますか? – exclsr
文脈を指定してください... –