比如:有没有办法直接把类型“byte[][*,*]”转换为“byte[*,*,*]”?有没有这样的函数??

解决方案 »

  1.   

    http://topic.csdn.net/u/20100408/16/220edfc4-2e73-4acd-9bb4-cee63355c795.html?29339
      

  2.   

    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);
      

  3.   

    for几次算了,
    实在不行就
      

  4.   

    byte[][,] b = new byte[][,] {new byte[2,4] {{ 1, 2, 3,4 }, {  5, 6,7,8 }} };
    这样定义?
    那你长度都不固定你不自己循环还怎么弄?
      

  5.   

    你无法声明的时候就固定byte[][]的后面长度的,只能定义为byte[][,],这样每个byte[,]的长度可以是不同的。
      

  6.   

    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];
    你如何转换?
      

  7.   

    长度都是固定的,比如byte[,,] b = new byte[2,3,3] 而且b里面的元素都已经赋值了。现在声明一个
    byte[][,] c=new byte[2][3,3],那么有没有函数可以可以直接把b里面值的复制到c中。
      

  8.   

    改一下上面c声明为:byte[][,] c=new byte[2][,],c[0]=new byte[3,3];c[1]=new byte[3,3];