2012-05-07 7 views
1

for文の中に "Item"という名前の新しいクラスを作成したいと思いますが、名前を動的に与える方法はわかりません。forループステートメント内で動的な属性名を作成

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

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

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

instance- EDITED

私は辞書を作成することができます私の解決策に到達するためのいくつかの提案を得まし。

 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" で、合理的なエラーが発生しました。私はオペランド '+'を適用できません。明らかに。

誰にでもこれに対する回答がありますか?

ありがとうございます。

+0

辞書については、 – BlackBear

+2

ここでユースケースを説明してください。私はこれがあなたが実際に望むものではないと確信しています。 –

+0

あなたの質問は何ですか? – Rahul

答えて

4

あなたはList<String>のようなコレクションを使用しcoud:あなたはそれが割り当てられている名前で変数にアクセスしたいあなたのコメントにAccroding編集

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

を。次に、代わりにDictionaryを使用する必要があります(名前が一意である場合)。例えば

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 
+0

"string name + i =" Hello "" – kmxillo

+0

@kmxillo :あなたが正しくあなたを理解していれば、私の編集された答えを見て、あなたは 'Dictionary'を使うことができます。 –

+0

はい、あなたは理解しました。しかし、タイプを辞書からmyClassに変換することはできません。 myClass name =新しい辞書(); ありがとう – kmxillo

5

アレイを使用してください!

string[] myArray = new string[Counter]; 
for (int i = 0; i < Counter; i++){ 
    myArray[i] = "Hello"; 
} 
+0

参照型オブジェクトの場合でも配列よりも大幅に高速に配列できますか? –

+3

@JohanLundbergはほんのわずかなケースでわずかに無視できない。 http://stackoverflow.com/questions/454916/performance-of-arrays-vs-listsを参照してください。 –

+0

@BalaR「Hello」値に変数の名前を付けたいと思います。配列やリストからはそれを参照しないでください。私はwanaの例を挙げましょう:string name = "Hello"後で "name"でこの値を呼び出すことができます – kmxillo

0

もう一つの方法は、

のように、 StringBuilderの使用であり、
var builder = new StringBuilder(); 
for (i=0; i<Counter; i++){ 
    builder.Append("Hello " + i); 
} 

完全な文字列が必要な場合

builder.ToString()

より速く簡単な文字列操作。

1

Dictionary (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]; 
関連する問題