一维数组与二维数组互转

来源:互联网 发布:科讯cms教程 编辑:程序博客网 时间:2024/06/16 22:14

一维->二维
一个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

原创粉丝点击