C#中如何将单一字节数组转换为二维字节数组?

3
我有一个字节数组
byte[] d = new byte[64];

现在我想将它转换为一个二维字节数组,例如...

byte[,] data = new byte[8,8];

有人能帮我解决这个问题吗?

3个回答

6
这可能是其中一种方法。
byte[] d = new byte[64];
byte[,] data = new byte[8,8];

int row = 0;
int column = 0;

for(i=0; i < d.Length; i++)
{
   row = i%8;
   column = i/8;
   data [row, column] = d[i];    
}

谢谢,但需要进行一些编辑。如果您允许我,我会在答案中进行编辑。它对我有用,谢谢。 - Drone
你可以告诉我,这样我就可以做了。 - Adil
就是让它变成 d.Lengthdata[column,row],仅此而已。 - Drone
谢谢@Drone,你真好。我已经做出了那些更改。 - Adil

4
你可以使用 Buffer.BlockCopy 方法
byte[] d = new byte[64];
byte[,] data = new byte[8,8];

Buffer.BlockCopy(d, 0, data, 0, 64);

0

怎么样,可以这样吗?

byte[] d = new byte[64];

for (byte i = 0; i < d.Length; i++)
    d[i] = i;

byte[,] data = new byte[8, 8];

Enumerable.Range(0, 8).ToList().
    ForEach(i => Enumerable.Range(0, 8).ToList().
        ForEach(j => data[i, j] = d[i * 8 + j]));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接