日期:2014-05-20  浏览次数:21001 次

不用循环,怎么把一维数组内容拷贝到二维数组中去?
byte[] a=new byte[3]; //如果内容是 1 2 3
byte[,] b=new byte[2,3]

不用循环,能把数组a的内容拷贝到二维数组b[0]中?
拷贝后b[0,0]=1 b[0,1]=2 b[0,3]=3

------解决方案--------------------
byte[,] b=new byte[2,3];//估计是不可以

//byte[][] b = new byte[2][]可以
byte[] a=new byte[3]; //如果内容是 1 2 3
a[0] = 1;
a[1] = 2;
a[2] = 3;
byte[][] b = new byte[2][];
b[0] = new byte[3];
b[1] = new byte[3];
Array.Copy(a,0,b[0],0,a.Length);
for (Int32 i = 0; i < 3; i++)
{
Console.WriteLine(b[0][i]);
}
------解决方案--------------------
C# code
byte[] a = new byte[3] { 1, 2, 3 }; //如果内容是 1 2 3
byte[,] b = new byte[2, 3];
var dest = Marshal.UnsafeAddrOfPinnedArrayElement(b, 0);
Marshal.Copy(a, 0, dest, a.Length);