如何在C#中将多维数组转换为一维数组

本文关键字:数组 转换 一维数组 | 更新日期: 2023-09-27 18:21:26

我有一个多维数组,其中包含二进制数据[3240]:

byte[,] bData = (byte[,])objTran; // bdata is binary data with [3,240]

这意味着它有3个记录,分别来自0239、1239和2239。现在我正在将这些数据整理到TRANSACTIONLOGINFO结构中的副本:

GCHandle handle = GCHandle.Alloc(bData, GCHandleType.Pinned);
TRANSACTIONLOGINFO ObjTranInfo = (TRANSACTIONLOGINFO)Marshal.PtrToStructure(
    handle.AddrOfPinnedObject(), typeof(TRANSACTIONLOGINFO));
handle.Free();

但是每次CCD_ 1仅显示第一数据细节。如何将多维数组转换为一维数组并传递给GCHandle以逐个获取每个数据?

如何在C#中将多维数组转换为一维数组

创建一个合适大小的一维字节数组(在您的示例中为240),并使用for循环一次跨字节复制数据。对原始二维数组的每一行重复此操作。