我们说我有4个字符串。
private string string_1, string_2, string_3, string_4;
然后让我说我有一个for循环。如何通过for循环的索引访问变量名?以下是我在谈论的内容:
for(int i = 0; i < 4; i++)
{
string_ + i = "Hello, world! " + i;
}
据我所知,上述操作无法编译。
感谢您的帮助。
答案 0 :(得分:1)
string[] hello = new string[4];
for(int i = 0; i < 4; i++)
{
hello[i] = "Hello, world! " + i;
}
如果您需要可变长度列表,请使用实现ICollection<string>
的类型,例如Dictionary<string>
,HashSet<string>
或List<string>
。
答案 1 :(得分:1)
你不能做你要问的事 - 至少直接做。
您可以从简单地将字符串放入数组开始,然后从数组中继续工作。
string[] strings = new []
{
string_1,
string_2,
string_3,
string_4,
};
for(int i = 0; i < 4; i++)
{
strings[i] = "Hello, world! " + i;
}
Console.WriteLine(string_3); // != "Hello, world! 2"
Console.WriteLine(strings[2]); // == "Hello, world! 2"
但是原来的string_3
没有改变,尽管它在数组中的插槽是正确的。
你可以更进一步,这样做:
Action<string>[] setStrings = new Action<string>[]
{
t => string_1 = t,
t => string_2 = t,
t => string_3 = t,
t => string_4 = t,
};
for(int i = 0; i < 4; i++)
{
setStrings[i]("Hello, world! " + i);
}
Console.WriteLine(string_3); // == "Hello, world! 2"
这与最初的预期相同 - string_3
确实会更新。虽然这有点人为,但可能对你有用。
答案 2 :(得分:-1)
将字符串放入数组中,然后使用for循环遍历数组。在迭代数组时,在数组的第i个元素上调用命令。
String[ ] array = ["a", "b","c"];
for(int i = 0; i < array.length ; i++)
// print array[i]