在for循环语句中创建动态属性名称

时间:2012-05-07 20:42:14

标签: c# .net string for-loop

我想在for语句中创建名为“Item”的类的新实例,但我不知道如何动态地给出名称。

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

如何创建2个字符串并给出名称? - 例如 -

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

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”中得到了一个合理的错误。我不能应用操作数'+'。明显。

有人对此有任何答案吗?

谢谢。

4 个答案:

答案 0 :(得分:5)

使用数组!

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

答案 1 :(得分:4)

您可以使用像List<String>这样的集合:

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

答案 2 :(得分: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];

答案 3 :(得分:0)

另一种方法是使用StringBuilder,例如

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

之后如果你需要完整的字符串

builder.ToString()

比简单的字符串操作快得多。