Coo*_*guy 3 c# jagged-arrays multidimensional-array
我有以下代码:
public int[] _SpDep = new int[50];
public int[][] _SpDepCnt = new int[50][];
public int[][] _SpReadType = new int[50][];
_DepNo = Convert.ToInt16(strFileName[n].Substring(1, 2));
_CntNo = Convert.ToInt16(strFileName[n].Substring(6, 2));
_SpDep[_DepNo] = 1;
_SpDepCnt[_DepNo][_CntNo] = 1;
_SpReadType[_DepNo][_CntNo] = 1;
Run Code Online (Sandbox Code Playgroud)
到达此行时出错:
_SpDepCnt[_DepNo][_CntNo] = 1;
Run Code Online (Sandbox Code Playgroud)
但我不知道出了什么问题?任何意见?这是2d array错误的声明吗?
[][]如果使用类型数组int[][](锯齿状数组),您希望像这样初始化数组:
public int[] _SpDep = new int[50];
public int[][] _SpDepCnt = new int[50][];
public int[][] _SpReadType = new int[50][];
Run Code Online (Sandbox Code Playgroud)
然后初始化数组中的数组:
var length = 20;
for (int i = 0; i < length; i++)
{
_SpDepCnt[i] = new int[length];
_SpReadType[i] = new int[length];
}
Run Code Online (Sandbox Code Playgroud)
它被称为锯齿状数组,因为第二部分的长度可以变化,你可以这样做:
[1,2,3,4]
[5,6]
[7,8,9]
Run Code Online (Sandbox Code Playgroud)
[,]我相信你想使用int[,]被称为多维数组的类型.他们制作了一个有两个固定尺寸的阵列.
public int[,] _SpDepCnt = new int[50, 20];
public int[][] _SpReadType = new int[50, 20];
Run Code Online (Sandbox Code Playgroud)
多维数组将为每个索引创建相同大小的数组:
[1,2,3]
[4,5,6]
[7,8,9]
Run Code Online (Sandbox Code Playgroud)