C# 循环迭代器偏移量
假设我有一个由4项组成的数组 当我访问第一个索引时,我还希望访问-1的偏移量(在本例中,它将循环到3)C# 循环迭代器偏移量,c#,for-loop,C#,For Loop,假设我有一个由4项组成的数组 当我访问第一个索引时,我还希望访问-1的偏移量(在本例中,它将循环到3) for(int i=0;i
for(int i=0;i
有没有更优雅的方式来实现这一点?我一直在考虑使用模运算符,但我不太了解它,不知道它是否是解决方案。您不能在循环中定义变量I,因为我已经定义了
for(int i = 0; i < array.Length; i++) {
int j = array[i];
int offset = (j == 0)?(array.Length -1):( i -1);
int offsetItem = array[offset];
}
for(int i=0;i
是的,有。将数组的长度添加到索引中,并使用余数运算符,如下所示:
int offset = (i-1+array.Length) % array.Length;
哎呀,修好了。谢谢谢谢,原来我也可以做
(I-1)%array.Length代码>也一样@MHTri您需要添加array.Length
,否则当i
为零时,它将生成-1
。但这当然没关系,因为-1%4=3是零索引数组的结尾。不,-1%4=-1
。您还需要添加4。@MHTri我不知道如何从-1%4
中获得3
,它为我生成-1
)。
int offset = (i-1+array.Length) % array.Length;