1

for ステートメント内で「Item」というクラスの新しいインスタンスを作成したいのですが、動的に名前を付ける方法がわかりません。

for (i=0; i < Counter; i++)
{
    MyClass "XXXX" = Class.method();
}

2 つの文字列を作成して名前を付けるにはどうすればよいですか? -例えば-

for(i=0;i<2;i++){
  string name + i = "Hello" 
}

編集済み

ディクショナリを作成できるソリューションに到達するためのいくつかの提案があります。

       var bomItems = new Dictionary<Item, Item>();

       for (int i = 0; i < Count; i++)
       {
           Item bomItem = inn.newItem("Part BOM","add");
           bomItems.Add(bomItem + i, bomItem);
       }

しかし、「bomItem + i」で妥当なエラーが発生しました。オペランド '+' を適用できないこと。明らかに。

誰もこれに対する答えを持っていますか?

ありがとうございました。

4

4 に答える 4

5

配列を使用してください!

string[] myArray = new string[Counter];
for (int i = 0; i < Counter; i++){
  myArray[i] = "Hello";
}
于 2012-05-07T20:44:07.653 に答える
4

次のようなコレクションを使用できますList<String>

var list = new List<String>();
for (i=0; i<Counter; i++){
     list.Add("Hello " + i);
}

コメントに応じて、割り当てられた名前で変数にアクセスしたい編集します。次に、Dictionary代わりに a を使用する必要があります (名前が一意の場合)。

例えば:

var names = new Dictionary<String, String>();
for (i=0; i < Counter; i++){
     names.Add("Name" + i, "Hello");
}

次の方法で、指定された文字列キーの文字列値を取得できます。

String name10 = names["Name10"]; // "Hello" since all values are "Hello" in your sample
于 2012-05-07T20:45:10.127 に答える
1

辞書(TKey、TValue)クラスを使用できます。ここで、キーはカウントする文字列です。

Dictionary<string, string> myDictionary = new Dictionary<string, string>();
for (i=0; i < Counter; i++)
{
   myDictionary.Add("XXXX", "Hello");  // Matches your above example
}

したがって、XXXXがカウンター文字列になり、Helloがそれに関連付けたい文字列になります。次に、を使用して各文字列を取得できます

string myString = myDictionary[XXXX];
于 2012-05-07T20:51:40.887 に答える
0

別の方法は、次のようなStringBuilderの使用です。

var builder = new StringBuilder();
for (i=0; i<Counter; i++){
     builder.Append("Hello " + i);
}

完全な文字列が必要な場合はその後

builder.ToString()

単純な文字列操作よりもはるかに高速です。

于 2012-05-07T20:51:22.483 に答える