【发布时间】:2015-07-28 18:50:58
【问题描述】:
到目前为止我尝试过的代码如下:
private static List<List<List<int>>> threeDArrayToThreeDList(int [,,] letters) {
// 3d-array to 3d-list
List<List<List<int>>> letterslist = new List<List<List<int>>>();
List<List<int>> sublist = new List<List<int>> ();
List<int> subsublist = new List<int> ();
for (int i = 0; i < 2; i++) {
letterslist.Add (sublist);
for (int j = 0; j < 2; j++) {
letterslist[i].Add (subsublist);
for (int k = 0; k < 2; k++) {
Console.WriteLine (letterslist [i][j][k]); // Element not found
Console.WriteLine (letters [i,j,k]);
letterslist [i] [j] [k] = letters [i,j,k];
}
}
}
return letterslist;
}
为什么没有找到字母列表 [i][j][k]?
【问题讨论】:
-
您是否确保例如 letterslist[3] 不为空?我没有看到为每个父位置创建列表实例的代码。
-
Why letterslist [i][j][k] isn't found?因为subsublist是空的。 -
子子列表已创建,但为空。因此, letterslist[0][0][0] 会触发异常。
-
另请注意,您正在使用
subsublist的same 实例填充sublist,并使用@987654327 的same 实例填充letterlist@. -
@kame:因为你的列表是空的。您无法访问
letterslist[0][0][0],因为letterslist[0][0].Count == 0
标签: c# arrays list multidimensional-array