假设我有一组值:
string[] text = new string[] { "val1", "val2", "val3", "val4", "val5" };
Run Code Online (Sandbox Code Playgroud)
然后我有一个基本循环:
for (int i = 0; i <= 30; i++)
{
Console.WriteLine(i + " = " + text[i])
}
Run Code Online (Sandbox Code Playgroud)
显然,这会导致越界异常,所以我想做的是当计数器到达数组的上限然后返回到开始.
所以
0 = val1
1 = val2
2 = val3
3 = val4
4 = val5
5 = val1
6 = val2
7 = val3
etc..
Run Code Online (Sandbox Code Playgroud)
Jer*_*ten 13
你可以使用模数运算符:
Console.WriteLine(i + " = " + text[i % 5])
Run Code Online (Sandbox Code Playgroud)
Jim*_*hel 12
取数组长度的模数:
for (int i = 0; i < 30; ++i)
{
Console.WriteLine(i + " = " + text[i % text.Length]);
}
Run Code Online (Sandbox Code Playgroud)
尝试
for(int i=0;i<=30;i++)
{
Console.WriteLine(i + " = " + string[i % 5])
}
Run Code Online (Sandbox Code Playgroud)