gpt4 book ai didi

c# - 在 C# 中将二维数组转换为一维数组?

转载 作者:太空狗 更新时间:2023-10-29 18:04:45 26 4
gpt4 key购买 nike

我在 C# 中将二维数组转换为一维数组。我从设备 (C++) 接收二维数组,然后在 C# 中将其转换为一维数组。这是我的代码:

int iSize = Marshal.SizeOf(stTransactionLogInfo); //stTransactionLogInfo is a structure
byte[,] bData = (byte[,])objTransLog; //objTransLog is 2 dimensionl array from device
byte[] baData = new byte[iSize];

for (int i = 0; i < bData.GetLength(0); i++)
{
for (int j = 0; j < iSize; j++)
{
baData[j] = bData[i, j];
}
}

我从上面的代码中得到了想要的结果,但问题是它不是标准的实现方式。我想知道如何以标准方式完成它。可能正在编码,我不确定。提前致谢。

最佳答案

您可以使用 Buffer.BlockCopy Method :

byte[,] bData = (byte[,])objTransLog;

byte[] baData = new byte[bData.Length];

Buffer.BlockCopy(bData, 0, baData, 0, bData.Length);

示例:

byte[,] bData = new byte[4, 3]
{
{ 1, 2, 3 },
{ 4, 5, 6 },
{ 7, 8, 9 },
{ 10, 11, 12 }
};

byte[] baData = new byte[bData.Length];

Buffer.BlockCopy(bData, 0, baData, 0, bData.Length);

// baData == { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }

关于c# - 在 C# 中将二维数组转换为一维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9322479/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com