我有一个数组,我想知道每个数组的长度。
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发布于 2016-12-15 10:49:02
var length = _EnemyPosition[0].Length; //returns 5 (5·1)
var length = _EnemyPosition[1].Length; //returns 10 (5·2)这是你想要的吗?你的要求还远不明确:
我想知道如何获得这个数组的长度:
_EnemyPosition[1][0].length
这不是一个数组,_EnemyPostion[1]是一个二维数组[,]。考虑以下模拟情景:
int[,] myTwoDimensionalArray = ...
var whatever = myTwoDimensionalArray[0]; //not valid, array dimensiones don't match.因此,当涉及到要返回的长度时,我们有三个选项:
_EnemyPosition[1].Length,它返回二维数组10的总长度。_EnemyPosition[1].GetLength(0),它返回二维数组5的第一个维度的长度_EnemyPosition[1].GetLength(1),它返回二维数组2的第二维度的长度。显然,2倍3的结果是1。那么,你想要哪一个?
发布于 2016-12-15 11:02:47
让我们解开数组的纠结:
int[][,] _EnemyPosition它是一个由2d数组组成的数组,因此您可以调用
_EnemyPosition.Length ,即2d数组的总数;对于位于index位置的每个2d数组,您可以调用
_EnemyPosition[index].GetLength(0)
_EnemyPosition[index].GetLength(1)它是index的2d数组中每个维度(行和列)的长度。请注意,交错数组和2d数组是不同的类型,这就是为什么不能
// doesn't compile
_EnemyPosition[1][0]因为_EnemyPosition[1]返回2d数组,需要2索引(类似于_EnemyPosition[1][0,1])
https://stackoverflow.com/questions/41162202
复制相似问题