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

本文关键字:代码 变量名 字符串 | 更新日期: 2023-09-27 18:26:32

我有许多名为test1…test10的变量,它们都声明为字符串。

我想做的是使用循环计数器从循环内部访问它们,如下所示:

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

知道我该怎么做吗?这是一个WPF.net 4窗口应用程序。

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

简单的答案:没有10个变量,只有一个变量是集合:

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

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

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

您根本不能使用List或String数组来实现此目的。

列表

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";
}

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

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

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

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

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