Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果我将多维数组用于锯齿状数组,如何获得其宽度和高度?_C#_Unity3d_Multidimensional Array_Jagged Arrays - Fatal编程技术网

C# 如果我将多维数组用于锯齿状数组,如何获得其宽度和高度?

C# 如果我将多维数组用于锯齿状数组,如何获得其宽度和高度?,c#,unity3d,multidimensional-array,jagged-arrays,C#,Unity3d,Multidimensional Array,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));

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

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
这就是你想要的吗?你的要求还很不明确:

我想知道如何获取此数组的长度:
\u EnemyPosition[1][0]。长度

这不是一个数组,
\u enemyposition[1]
是一个二维数组。考虑下面的模拟场景:

int[,] myTwoDimensionalArray = ...
var whatever = myTwoDimensionalArray[0]; //not valid, array dimensiones don't match.
因此,对于要返回的长度,我们有三个选项:

  • \u EnemyPosition[1]。Length
    返回二维数组的总长度
    10
  • \u EnemyPosition[1]。GetLength(0)
    返回二维数组的第一个维度的长度
    5
  • \u EnemyPosition[1].GetLength(1)
    返回二维数组第二维的长度
    2

  • 显然,
    2
    3
    的结果是
    1
    。那么,你想要哪一个呢?

    让我们解开数组:你有

     int[][,] _EnemyPosition
    
    它是一个二维数组的数组;所以你可以打电话

     _EnemyPosition.Length 
    
    这是2d阵列的总数;对于位于
    索引
    位置的每个2d数组,您可以调用

     _EnemyPosition[index].GetLength(0)
     _EnemyPosition[index].GetLength(1)
    
    这是
    index
    s 2d数组中每个维度(行和列)的长度。请注意,锯齿阵列和2d阵列是不同的类型;这就是为什么你不能把

     // doesn't compile
     _EnemyPosition[1][0]
    

    因为
    \u EnemyPosition[1]
    返回需要2索引的2d数组(类似于
    \u EnemyPosition[1][0,1]

    因为
    \u EnemyPosition
    int[],你不能用
    \u EnemyPosition[1][0]
    调用它-它必须类似于
    \u EnemyPosition 1][0,0]
    。这就是错误告诉你的。非常感谢先生非常有用谢谢先生非常有用:)
     // doesn't compile
     _EnemyPosition[1][0]