Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从字符串构造代码中的变量名?_C# - Fatal编程技术网

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

C# 如何从字符串构造代码中的变量名?,c#,C#,我有许多变量名为test1…test10,它们都声明为字符串 我要做的是使用循环计数器从循环内部访问它们,如下所示: string test1; //... string test10; for (int i = 1; i < 10; i++) { test + i.ToString() = "some text"; } stringtest1; //... 字符串test10; 对于(int i=1;i

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

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

string test1;
//...
string test10;

for (int i = 1; i < 10; i++)
{
    test + i.ToString() = "some text";  
} 
stringtest1;
//...
字符串test10;
对于(int i=1;i<10;i++)
{
test+i.ToString()=“一些文本”;
} 
你知道我该怎么做吗?
这是一个WPF.net 4 windows应用程序。

简单回答:不要有10个变量,要有一个作为集合的变量:

List<string> test = new List<string>();
for (int i = 1; i < 10; i++)
{
    test.Add("some text");
}
List test=newlist();
对于(int i=1;i<10;i++)
{
测试。添加(“一些文本”);
}
拥有大量逻辑上形成一个集合的变量是一种设计风格

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

你根本不能,为此使用a或a

列表
List myStrings=new List();
对于(Int32 i=0;i<10;i++)
{
添加(“一些文本”);
}
字符串数组
String[]myStrings=新字符串[10];
对于(Int32 i=0;i
尝试将它们添加到
字符串[]
的数组中,或者简单地创建一个
列表=新列表()


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

这实际上是不可能的,除非您使用
动态
关键字,然后您将获得一个属性而不是一个真变量。看一下,它将允许您添加基于字符串变量的属性


在您的情况下,正如其他人所说,您确实应该使用
列表

对于10个简单的项目,数组是最好的方法。快速且简单。

重构以生成一个值集合。我建议您购买一本好的C#book。使用字符串列表如何?你在绑定这些字符串吗?看看这个在编译语言中不起作用的。使用
列表
。我想知道为什么我的答案同时发布,你却越来越出名。一定与羊群本能有关。@FelixK:恰恰相反,这个答案让我获得了更为严重的声誉:),可能有一部分是从众本能,另一部分是因为提出了这是一个设计问题的事实。向一个明显的初学者指出动态或扩展对象就像给他们一个大的红色按钮,然后说他们不应该按下它。(我没有投反对票,因为这在技术上是正确的,但仍然如此。)
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";
}