循环遍历数组而不抛出异常

2 c# arrays loops

假设我有一组值:

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)


Ada*_*lph 5

尝试

for(int i=0;i<=30;i++)
{
    Console.WriteLine(i + " = " + string[i % 5])
}
Run Code Online (Sandbox Code Playgroud)