我需要(最初)复制一个C# 3D 锯齿数组,foos,到另一个3D数组(最终加上x、y、z维度)。我认为我可以使用与构建foos相同的语法/逻辑来复制foos,就像我下面所做的一样(其中row = 2, col = 3, z = 4):
private static void copyFooArray(Foo[][][] foos, ref Foo[][][] newArray)
{
for (int row = 0; row < foos.Length; row++)
{
newArray[row] = new Foo[foos[row].Length][];
for (int col = 0; col < foos[row].Length; col++)
{
newArray[row][col] = new Foo[foos[row][col].Length];
for (int z= 0; z< foos[row][col].Length; z++)
{
newArray[row][col][z] = new Foo();
newArray[row][col][z].member = foos[row][col][z].member;
}
}
}
Console.Read();
}
但是我在这行代码上遇到了 Index was outside the bounds of the array.
的错误:
newArray[row] = new Foo[foos[row].Length][];
为什么会出现这种情况呢?
Foo 类:
public class Foo
{
public string member;
}
感谢您的选择。
newArray
?也许一个List<List<List<Foo>>>
更加合适。 - SteveFoo[][][] newArray = new Foo[0][][];
然后将其传递给我的copyFooArray(...)函数... 看起来我的问题可能已经在下面得到了解答... - Mark S