假設我有4個字符串。通過使用索引for循環訪問變量的名稱
private string string_1, string_2, string_3, string_4;
然後讓我們說我有一個for循環。我如何通過for循環的索引訪問變量名?這裏是我在說什麼的想法:
for(int i = 0; i < 4; i++)
{
string_ + i = "Hello, world! " + i;
}
我明白,做上述不會編譯。
感謝您的幫助。
假設我有4個字符串。通過使用索引for循環訪問變量的名稱
private string string_1, string_2, string_3, string_4;
然後讓我們說我有一個for循環。我如何通過for循環的索引訪問變量名?這裏是我在說什麼的想法:
for(int i = 0; i < 4; i++)
{
string_ + i = "Hello, world! " + i;
}
我明白,做上述不會編譯。
感謝您的幫助。
將你的字符串放入數組,然後使用for循環遍歷數組。在迭代數組時,請在數組的第i個元素上調用您的命令。
String[ ] array = ["a", "b","c"];
for(int i = 0; i < array.length ; i++)
// print array[i]
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>
一個類型。
你不能做你所問的 - 至少直接。
您可以先將字符串放入數組中,然後從數組開始工作。
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
不會得到更新。雖然這是一個小小的設計,但可能對你有用。
改用字典 – prashant
你不能這樣做。如果你想有一個字符串列表,那麼使用'List'類型或字符串數組。 –
DavidG
我正在閱讀MSDN。就像字典一樣,哈希映射呢? @prashanth – user1460211