如何在字符串的代码中构造变量名?

时间:2012-03-01 16:42:15

标签: c#

我有一些名为test1 .... test10的变量,它们都被声明为字符串。

我想要做的是使用循环计数器从循环内部访问它们:

string test1;
//...
string test10;

for (int i = 1; i < 10; i++)
{
    test + i.ToString() = "some text";  
} 

任何想法我怎么能这样做? 这是一个WPF .net 4 windows App。

5 个答案:

答案 0 :(得分:10)

简单回答:没有10个变量,有一个变量是集合:

List<string> test = new List<string>();
for (int i = 1; i < 10; i++)
{
    test.Add("some text");
}

有许多逻辑上形成集合的变量是一种设计气味。

(如果真的必须这样做,你可以使用反射。但请不要。)

答案 1 :(得分:4)

你根本不能,为此目的使用ListString-Array

列表

List<String> myStrings = new List<String>();
for (Int32 i = 0; i < 10; i++) 
{
    myStrings.Add("some text");
}

字符串阵

String[] myStrings = new String[10];
for (Int32 i = 0; i < myStrings.length; i++) 
{
    myStrings[i] = "some text";
}

答案 2 :(得分:2)

尝试将它们添加到string[]数组中,或者只创建一个List<string> list = new List<string>();

使用list,您可以轻松迭代。

答案 3 :(得分:0)

这是不可能的,除非您使用dynamic关键字,然后您将获得属性而不是真正的变量。看一下ExpandoObject,它将允许您根据字符串变量添加属性。

在你的情况下,正如其他人所说,你真的应该使用List<string>

答案 4 :(得分:0)

对于像10个项目一样简单的东西,数组是最好的方法。快速而简单。