2D阵列与Jagged阵列?

时间:2014-12-01 21:25:37

标签: arrays unity3d multidimensional-array area jagged-arrays

所以,我搜索了一下,但不完全确定要搜索什么,tbh ...... 我目前正在做一些“级别生成”代码,并创建包含我这一代对象的对象。 基本上我有一个由坐标定义的“Cell”类。 然后我尝试创建一个“CellArea”类,它在一个区域中保存多个单元格。如果这是一个矩形就足够简单,因为我只使用Cell [,]。但是因为这可能是一种“L”形状(我很好将它限制在2“Corridors”),我该怎么做呢?或者只是更有效地进行某种列表/集合?

我想知道你是否可以做一个看起来像......的Jagged数组。

{0, 1, 2}
{0, 1, 2}
{0, 1, 2}
{0, 1, 2}
{0, 1, 2, 3, 4, 5}
{0, 1, 2, 3, 4, 5}
{0, 1, 2, 3, 4, 5}

我希望我的问题清楚吗?显然我可以做一个[7,6]的bidim数组,然后不填写“空”位置,但在某种程度上效率不高吗?

1 个答案:

答案 0 :(得分:0)

是的,你当然可以!

int[][] jaggedArray = new int[7][];

jaggedArray[0] = new int[] {0, 1, 2};
jaggedArray[1] = new int[] {0, 1, 2};
jaggedArray[2] = new int[] {0, 1, 2};
jaggedArray[3] = new int[] {0, 1, 2};
jaggedArray[4] = new int[] {0, 1, 2, 3, 4, 5};
jaggedArray[5] = new int[] {0, 1, 2, 3, 4, 5};
jaggedArray[6] = new int[] {0, 1, 2, 3, 4, 5};

参考:http://msdn.microsoft.com/en-us/library/2s05feca.aspx