C#组合两个2D字节数组(填充零)

时间:2016-08-03 00:16:42

标签: c# arrays bytearray

我想要合并两个2D字节数组。例如:

2D array1:         2D array2:           Combined array3:
[1][0][1]          [0][1][0]            [1][1][1]
[0][0][0]          [1][0][1]     =>     [1][0][1]
[1][0][1]          [0][1][0]            [1][1][1]

我试过这样:

for(int i = 0; i < array3.GetLength(0); i++)
{
    for(int j = 0; j < array3.GetLength(1); j++)
    {
        // Missing a cast
        array3[i, j] = array1[i, j] + array2[i, j];
    }
}

评论下的该行表示无法从byte转换为int。我正在读这个:byte + byte = int... why?,但仍然无法弄清楚我想要完成的任务。

我如何组合它们?提前谢谢!

1 个答案:

答案 0 :(得分:1)

尝试此操作以获得所需的输出:

for(int i = 0; i < array3.GetLength(0); i++)
{
    for(int j = 0; j < array3.GetLength(1); j++)
    {
        // All you need to do is cast the int to a byte.
        array3[i, j] = (byte)((array1[i, j] == 0) ? array2[i, j] : array1[i, j]);
    }
}

添加array1[i, j]array2[i, j]可能会为您提供2,这在您的示例中不是您想要的。