基本上你有两种方法可以做到这一点:
for (int x = 0; x < UPPER_X; x++)
for (int y = 0; y < UPPER_Y; y++)
{
arr1[x, y] = get_value();
arr2[y, x] = get_value();
}
唯一的区别是在内循环中更改哪个变量:第一个或第二个。我听说不同语言的结果有所不同。
.NET 的正确顺序是什么?
您应该对您的具体情况进行基准测试以确定。
您可能会认为矩形数组(即连续分配的内存)没有区别,但根据此MSDN 文章 http://msdn.microsoft.com/en-us/magazine/cc163995.aspx它们是有区别的:
您可以获得更好的结果
转换多维数组
成一维数组。如果
你不介意语法,这可以是
琐碎的;只需使用一个索引作为
抵消。例如,以下
声明一个一维数组
用作二维数组:
double[] myArray = new double[ROW_DIM * COLUMN_DIM];
用于索引 this 的元素
数组,使用以下偏移量:
myArray[row * COLUMN_DIM + column];
这无疑会比
等效的锯齿状或矩形
大批。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)