byte[,] b = new byte[2, 3] { { 1, 2, 3 }, { 4, 5, 6 } }; byte[] a = new byte[6]; var dest = Marshal.UnsafeAddrOfPinnedArrayElement(b, 0); Marshal.Copy(dest, a, 0, b.Length);
for几次算了, 实在不行就
byte[][,] b = new byte[][,] {new byte[2,4] {{ 1, 2, 3,4 }, { 5, 6,7,8 }} }; 这样定义? 那你长度都不固定你不自己循环还怎么弄?
byte[*,*,*]? 你是不是想当然写的?定义只能这样写 byte[,,,] c = new byte[5,6,8];这样你的秩是确定长度的。而你从一个不定长度的转换到这样的。怎么对应呢? byte[][,] b = new byte[][,] {new byte[2,4] {{ 1, 2, 3,4 }, { 5, 6,7,8 }} }; byte[,,,] c = new byte[8,8,8]; 你如何转换?
长度都是固定的,比如byte[,,] b = new byte[2,3,3] 而且b里面的元素都已经赋值了。现在声明一个 byte[][,] c=new byte[2][3,3],那么有没有函数可以可以直接把b里面值的复制到c中。
byte[] a = new byte[6];
var dest = Marshal.UnsafeAddrOfPinnedArrayElement(b, 0);
Marshal.Copy(dest, a, 0, b.Length);
实在不行就
这样定义?
那你长度都不固定你不自己循环还怎么弄?
你是不是想当然写的?定义只能这样写
byte[,,,] c = new byte[5,6,8];这样你的秩是确定长度的。而你从一个不定长度的转换到这样的。怎么对应呢?
byte[][,] b = new byte[][,] {new byte[2,4] {{ 1, 2, 3,4 }, { 5, 6,7,8 }} };
byte[,,,] c = new byte[8,8,8];
你如何转换?
byte[][,] c=new byte[2][3,3],那么有没有函数可以可以直接把b里面值的复制到c中。