C# 循环迭代器偏移量

C# 循环迭代器偏移量,c#,for-loop,C#,For Loop,假设我有一个由4项组成的数组 当我访问第一个索引时,我还希望访问-1的偏移量(在本例中,它将循环到3) for(int i=0;i

假设我有一个由4项组成的数组

当我访问第一个索引时,我还希望访问-1的偏移量(在本例中,它将循环到3)

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;