这边写个小例子,记录一下今天工作遇到的小难题,关于多维数组的数组的数据拷贝
定义数组中的单个元素的结构体
public struct MyPoint
{
public double x;
public double y;
public double z;
}
初始化源数组Points 并赋值:
MyPoint pt;
pt.x = 1;
pt.y = 2;
pt.z = 3;
MyPoint[][,] Points = null;
Points = new MyPoint[100][,];
for(int i = 0;i<Points.Length;i++)
{
Points[i] = new MyPoint[2, 3] { { pt, pt , pt }, { pt, pt, pt } };
}
定义目标数组并初始化
MyPoint[][,] PointsNew = null;
PointsNew = new MyPoint[Points.Length][,];
二维数组的数组 数据拷贝
for(int i = 0;i< Points.Length;i++)
{
PointsNew[i] = new MyPoint[Points[i].GetLength(0), Points[i].GetLength(1)];
Array.Copy(Points[i], PointsNew[i], Points[i].Length);
}
完成数组拷贝之后,新数组的数据显示
for(int i = 0;i< PointsNew.Length;i++)
{
for(int j = 0;j< PointsNew[i].GetLength(0);j++)
{
for(int k = 0;k<PointsNew[i].GetLength(1);k++)
{
Console.Write("x,y,z = {0},{1},{2}", PointsNew[i][j, k].x, PointsNew[i][j, k].y, PointsNew[i][j, k].z);
}
Console.WriteLine("");
}
Console.WriteLine("");
Console.WriteLine("");
}
vs输出窗口的运行结果显示: