如何动态获取二维数组中的位置

时间:2014-02-02 18:49:35

标签: c# arrays dynamic-arrays

我有一个2D数组:

int[,] twoArr=  new int[2,10];

假设我在数组中的位置0,8并且用户输入他们想要获得当前位置的值+ 3.你是如何做到的?

我只知道我所处的位置,但我不知道用户输入了哪个值,他们可以输入1,2,3,4等等。

事情是我不知道如何从位置跳跃:

  

0,9 - 1,0 - 1,1 ...

2 个答案:

答案 0 :(得分:1)

我认为您可以尝试以下方法:

int max_n = 2;
int max_m = 10;
int current_position_x = 0;
int current_position_y = 8;
current_position_y += 3;   // here you add a shift to your current position
if (current_position_y >= max_m)
{
     current_position_x += current_position_y / max_m;
     current_position_y %= max_m;
}

在这种情况下,您将遍历数组为(0,0),(0,1)...(0,9),(1,0)......(1,9)

答案 1 :(得分:0)

回到所有阵列都是1维的“旧”时代,他们仍然是真的。

位置0,8 =行* 0 +列= 8

位置8 + 3 = 11, 所以row == 11 div(列数)[10] = 1 和列= 11%10 = 1