一维->二维
一个n个元素的一维数组,转换为r行c列的二维数组
对于一维数组中任意一个元素的下标 i (0 <= i < n)
其对应的二维数组下标为 (i / c, i % c), 显然, 只与列数c有关,而与行数r无关
可以写成
int[] a = new int[n];
int[,] b = new int[r, c];
for (int i = 0; i < n; i++)
b[i / c, i % c] = a[i];
或写成
for (int i = 0; i < r; i++)
{
for (int j = 0; j < c; j++)
{
b[i, j] = a[i * c + j];
}
}
二维转一维
int[,] a = new int[r, c];
int[] b = new int[r * c];
for(int i = 0; i < b.Length; i++)
b[i] = a[i / c, i % c];
转自; http://www.cnblogs.com/graphics/archive/2009/06/04/1496203.html