2012-01-24 16 views
1

Iが[3,240]のようにバイナリデータを含むもの多次元配列を有する:それは3つのレコードを有しているC#でMultiDimensional ArrayをSingle Dimensional Arrayに変換する方法は?

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

0239と1239と2239からそれぞれ。 は、今私はTRANSACTIONLOGINFO構造にコピーするには、このデータをマーシャリングしています:

GCHandle handle = GCHandle.Alloc(bData, GCHandleType.Pinned); 

TRANSACTIONLOGINFO ObjTranInfo = (TRANSACTIONLOGINFO)Marshal.PtrToStructure(
    handle.AddrOfPinnedObject(), typeof(TRANSACTIONLOGINFO)); 

handle.Free(); 

しかし毎回ObjTranInfoは最初のデータの詳細を示しています。多次元配列を一次元配列に変換してGCHandleに渡すと、どのデータを1つずつ取得できますか?

+0

「TRANSACTIONLOGINFO」とは何ですか?あなたは確かに構造の配列ではありませんか? – leppie

+0

objTranオブジェクトとは何ですか? – zzfima

+0

TRANSACTIONLOGINFOは構造体です – user662285

答えて

1

forループを使用して、適切なサイズ(ケース240内)の1次元バイト配列を作成し、一度に1バイトずつデータをコピーします。オリジナルの2次元配列の各行に対してこれを繰り返します。

+0

コードサンプルpls – user662285

関連する問題