我有一个数组[4,4],我正在循环并打印值。
trainingpatterns.array = new int[4, 4];
for (int i = 0; i < 4; i++)
{
var element1 = x + array.coordinates[0];
var element2 = x + array.coordinates[2];
var element3 = x + array.coordinates[4];
var element4 = x + array.coordinates[6];
for (int j = 0; j < 4; j++)
{
var element1 = y + array.coordinates[1];
var element2 = y + array.coordinates[3];
var element3 = y + array.coordinates[5];
var element4 = y + array.coordinates[7];
Console.WriteLine(trainingpatterns.array[element2, element6]);
但是我的循环要求我查看索引。因此,当它到达[5,4]时,将抛出异常。
我想要做的是,如果x值超出界限,它将循环回到开始。因此,例如[5,4]将打印[0,4]或[6,4]将打印[2,4]。
我尝试过使用try catch但是我不能让所有值都具有通用功能。
谢谢。
答案 0 :(得分:2)
我怀疑你只想使用%
运算符:
int length0 = inputArray.GetUpperBound(0);
int length1 = inputArray.GetUpperBound(1);
...
var value = inputArray[x % length0, y % length1];
请注意,不包装负数,但a % b
的范围为(-b, +b)
,而您需要[0, +b)
。考虑到这一点有点长,但如果你需要,请告诉我。如果您的索引值始终为非负值,则无需担心。