我试图将 ByteArray (代表屏幕截图数据)拆分为 2d 数组,所以如果我有一个 3x3 数组(xy /rows 列)
它看起来像这样
int screenSwidth = 3;
int screenSheight = 3;
byte[] ScreenShot = new byte[] {1,2,3,4,5,6,7,8,9};
我正在尝试通过 2 个嵌套的 for 循环,将串行数据拆分为新的二维数组中的单独行,因为它是在屏幕上最初成形/形成的。
对于这个例子,我们只需将新的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