如果我将它用于 Jagged Arrays,如何获得多维数组的宽度和高度?
How do you get the width and height of a multi-dimensional array if i use it into Jagged Arrays?
我有一个数组,我想知道每个数组的长度。
public int[][,] _EnemyPosition = new int[][,]
{
new int[,]{ {0},{1},{2},{3},{4}},
new int[,]{ {0,6},{1,7},{2,8},{3,9},{4,10}},
};
Debug.Log(_EnemyPosition.Length); // Output is 2
Debug.Log(_EnemyPosition[1].GetLength(0)); // Output is 5
但是我无法得到
Debug.Log(_EnemyPosition[1][0].length);
它给我一个错误
error CS0022: Wrong number of indexes `1' inside [], expected `2'
我想知道如何得到这个数组的长度
_EnemyPosition[1][0].length
var length = _EnemyPosition[0].Length; //returns 5 (5·1)
var length = _EnemyPosition[1].Length; //returns 10 (5·2)
这是你想要的吗?您的要求还很不明确:
i want to know how to get length of this array: _EnemyPosition[1][0].length
那不是数组,_EnemyPostion[1]
是二维数组[,]
。考虑以下模拟场景:
int[,] myTwoDimensionalArray = ...
var whatever = myTwoDimensionalArray[0]; //not valid, array dimensiones don't match.
所以,当涉及到您想要返回的长度时,我们有三种选择:
_EnemyPosition[1].Length
其中returns二维数组的总长度10
.
_EnemyPosition[1].GetLength(0)
其中returns二维数组第维的长度5
_EnemyPosition[1].GetLength(1)
其中returns二维数组second维度的长度2
显然 2
次 3
的结果是 1
。那么,你想要哪一个?
让我们解开数组:你有
int[][,] _EnemyPosition
这是二维数组的数组;这样你就可以打电话给
_EnemyPosition.Length
这是二维数组的总数;对于 index
位置的每个二维数组,您可以调用
_EnemyPosition[index].GetLength(0)
_EnemyPosition[index].GetLength(1)
这是 index
二维数组中 每个维度 (行和列)的长度。请注意,jagged array 和 2d array 是不同的类型;这就是为什么你不能把
// doesn't compile
_EnemyPosition[1][0]
因为 _EnemyPosition[1]
returns 2d array 需要 2 索引(类似于 _EnemyPosition[1][0,1]
)
我有一个数组,我想知道每个数组的长度。
public int[][,] _EnemyPosition = new int[][,]
{
new int[,]{ {0},{1},{2},{3},{4}},
new int[,]{ {0,6},{1,7},{2,8},{3,9},{4,10}},
};
Debug.Log(_EnemyPosition.Length); // Output is 2
Debug.Log(_EnemyPosition[1].GetLength(0)); // Output is 5
但是我无法得到
Debug.Log(_EnemyPosition[1][0].length);
它给我一个错误
error CS0022: Wrong number of indexes `1' inside [], expected `2'
我想知道如何得到这个数组的长度
_EnemyPosition[1][0].length
var length = _EnemyPosition[0].Length; //returns 5 (5·1)
var length = _EnemyPosition[1].Length; //returns 10 (5·2)
这是你想要的吗?您的要求还很不明确:
i want to know how to get length of this array:
_EnemyPosition[1][0].length
那不是数组,_EnemyPostion[1]
是二维数组[,]
。考虑以下模拟场景:
int[,] myTwoDimensionalArray = ...
var whatever = myTwoDimensionalArray[0]; //not valid, array dimensiones don't match.
所以,当涉及到您想要返回的长度时,我们有三种选择:
_EnemyPosition[1].Length
其中returns二维数组的总长度10
._EnemyPosition[1].GetLength(0)
其中returns二维数组第维的长度5
_EnemyPosition[1].GetLength(1)
其中returns二维数组second维度的长度2
显然 2
次 3
的结果是 1
。那么,你想要哪一个?
让我们解开数组:你有
int[][,] _EnemyPosition
这是二维数组的数组;这样你就可以打电话给
_EnemyPosition.Length
这是二维数组的总数;对于 index
位置的每个二维数组,您可以调用
_EnemyPosition[index].GetLength(0)
_EnemyPosition[index].GetLength(1)
这是 index
二维数组中 每个维度 (行和列)的长度。请注意,jagged array 和 2d array 是不同的类型;这就是为什么你不能把
// doesn't compile
_EnemyPosition[1][0]
因为 _EnemyPosition[1]
returns 2d array 需要 2 索引(类似于 _EnemyPosition[1][0,1]
)