【发布时间】:2012-09-10 20:44:01
【问题描述】:
我试图将一个 ByteArray(代表屏幕截图数据)拆分为 一个二维数组,所以如果我有一个 3x3 数组(xy /rows 列)
应该是这样的
int screenSwidth = 3;
int screenSheight = 3;
byte[] ScreenShot = new byte[] {1,2,3,4,5,6,7,8,9};
我正在尝试通过 2 个嵌套的 for 循环,将串行数据拆分为 新二维阵列中的分隔行,因为它在屏幕上最初成形/形成。
对于这个例子,我们只需将 new ScreenShotRows[] 称为“b”
b[0][0] = 1 b[0][1] = 2 b[0][2] = 3
b[1][0] = 4 b[1][1] = 5 b[1][2] = 6
b[2][0] = 7 b[2][1] = 8 b[2][2] = 9
问题是遍历整个数组的正确方法是什么 我试图通过这段代码来实现这一点。
for (int HeightIter= 0; HeightIter < screenSheight; HeightIter++)
{
for (int WidthIter = 0; WidthIter < screenSwidth ; WidthIter++)
{
ScreenShotRows[HeightIter, WidthIter] = ScreenShot[WidthIter];
}
}
它遍历第一行,分配值:
b[0][0] = 1 b[0][1] = 2 b[0][2] = 3
b[1][0] = 1 b[0][1] = 2 b[0][2] = 3
b[2][0] = 1 b[0][1] = 2 b[0][2] = 3
这是我第一次尝试这种多维/锯齿状数组 使用嵌套的 for 循环, 我发现让它工作起来非常令人困惑
也是为了尽快完成,
因为我的数据远大于 3x3 ,并且方法被频繁调用多次,因此性能至关重要
我的下一步将是对列采用相同的方式
元素 0,0 到 0,2 ---- 元素 1,0 到 1,2 ---- 元素 2,0 到 2,2
147 258 369
【问题讨论】:
标签: c# multidimensional-array nested-loops jagged-arrays