如何从字符串中构造代码中的变量名
本文关键字:代码 变量名 字符串 | 更新日期: 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项这样简单的东西,数组是最好的方法。快速而简单。