.NET 矩形数组:如何循环访问?

2024-01-12

基本上你有两种方法可以做到这一点:

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(使用前将#替换为@)

.NET 矩形数组:如何循环访问? 的相关文章

随机推荐