ByteArray (スクリーンショット データを表す) を 2 次元配列に分割しようとしたので、たとえば 3x3 (xy /rows 列) の配列がある場合
それはこのようになります
int screenSwidth = 3;
int screenSheight = 3;
byte[] ScreenShot = new byte[] {1,2,3,4,5,6,7,8,9};
2 つの入れ子になった for ループを使用して、シリアル データを新しい2 次元配列の別々の行に分割しようとしています。
この例では、新しい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 ループを使用したこの種の multiDimetional /jagged 配列に対する私の最初の試みであり、それを機能させるには非常に混乱することがわかりました
また、できるだけ早く完了するために、
私のデータは 3x3 よりもはるかに大きく、メソッドは頻繁に複数回呼び出されるため、パフォーマンスが重要です
私の次の動きは、列と同じようにすることです
要素 0,0 から 0,2 ---- 要素 1,0 から 1,2 ---- 要素 2,0 から 2,2
147 258 369