我有一个数组,我想知道每个数组的长度。

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)


那是你要的吗?您的要求还很不清楚:


  我想知道如何获取此数组的长度:_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。那么,您想要哪一个?

关于c# - 如果将其用于锯齿阵列中,如何获得多维阵列的宽度和高度?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41162202/

10-09 06:01