1

forループでvarを作成したい、例えば

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

これにより、変数s0、s1、s2...からs10が作成されます。

4

6 に答える 6

11

おそらく配列を使用したいと思うでしょう。それらが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を読んで ください

于 2009-07-18T16:46:45.077 に答える
4

変数「i」を再定義しようとしているため、最初の例はどの言語でも機能しません。これintはループ内のコントロールですが、stringループの本体内にあります。

更新された質問に基づいて、最も簡単な解決策は配列を使用することです(C#で):

string[] s = new string[10];
for (int i; i< 10; i++)
{
    s[i] = "abc";
}
于 2009-07-18T16:41:02.607 に答える
3

辞書を使うことができます。キー-オブジェクトの動的な名前値-オブジェクト

        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
于 2009-07-18T17:45:43.803 に答える
3

明らかに、これは言語に大きく依存しています。ほとんどの言語では、それは完全に不可能です。Javascript では、ブラウザーで次のように動作します。

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

たとえば、変数 sq3 は 9 に設定されます。

于 2009-07-18T16:41:42.747 に答える
0

eval言語で利用可能な場合は、何らかの種類を使用してください。

于 2009-07-18T16:41:12.560 に答える
0

これは言語によって異なります。

一般的に、これを行いたい場合、正しいことは、キー名と関連する値を格納するハッシュ テーブル/辞書/マップなどのデータ構造を使用することです。

于 2009-07-18T16:41:36.413 に答える