我有一个包含二进制数据的多维数组,如[3,240]:
byte[,] bData = (byte[,])objTran; // bdata is binary data with [3,240]
这意味着它有3个记录,分别来自0,239和1,239和2,239。 现在我正在编组这些数据,以便在TRANSACTIONLOGINFO结构中复制:
GCHandle handle = GCHandle.Alloc(bData, GCHandleType.Pinned);
TRANSACTIONLOGINFO ObjTranInfo = (TRANSACTIONLOGINFO)Marshal.PtrToStructure(
handle.AddrOfPinnedObject(), typeof(TRANSACTIONLOGINFO));
handle.Free();
但每次ObjTranInfo
仅显示第一个数据详细信息。如何将多维数组转换为一维数组并传递给GCHandle
以逐个获取每个数据?
答案 0 :(得分:1)
创建一个大小合适的单维字节数组(在您的情况下为240),并使用for
循环一次一个字节地复制数据。对原始二维数组的每一行重复此操作。