c#二维数组的数组 拷贝方式

401 阅读1分钟

这边写个小例子,记录一下今天工作遇到的小难题,关于多维数组的数组的数据拷贝

定义数组中的单个元素的结构体

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输出窗口的运行结果显示:
在这里插入图片描述