forループでvarを作成したい、例えば
for(int i; i<=10;i++)
{
string s+i = "abc";
}
これにより、変数s0、s1、s2...からs10が作成されます。
forループでvarを作成したい、例えば
for(int i; i<=10;i++)
{
string s+i = "abc";
}
これにより、変数s0、s1、s2...からs10が作成されます。
おそらく配列を使用したいと思うでしょう。それらがc#でどのように機能するかは正確にはわかりません(私はJavaの男です)が、次のようなものがそれを行うはずです:
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を読んで ください
変数「i」を再定義しようとしているため、最初の例はどの言語でも機能しません。これint
はループ内のコントロールですが、string
ループの本体内にあります。
更新された質問に基づいて、最も簡単な解決策は配列を使用することです(C#で):
string[] s = new string[10];
for (int i; i< 10; i++)
{
s[i] = "abc";
}
辞書を使うことができます。キー-オブジェクトの動的な名前値-オブジェクト
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
明らかに、これは言語に大きく依存しています。ほとんどの言語では、それは完全に不可能です。Javascript では、ブラウザーで次のように動作します。
for (var i = 0; i<10 ; i++) { window["sq"+i] = i * i; }
たとえば、変数 sq3 は 9 に設定されます。
eval
言語で利用可能な場合は、何らかの種類を使用してください。
これは言語によって異なります。
一般的に、これを行いたい場合、正しいことは、キー名と関連する値を格納するハッシュ テーブル/辞書/マップなどのデータ構造を使用することです。