3

私は以下のコードを持っています:

    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;

この行に到達するとエラーが発生します:

      _SpDepCnt[_DepNo][_CntNo] = 1;

でも、何が悪いのかわからない?ご意見はありますか?2d array宣言が間違っているのでしょうか?

4

5 に答える 5

5

ジャグ配列[][]

タイプの配列int[][]ジャグ配列)を使用する場合は、次のように配列を初期化します。

public int[] _SpDep = new int[50];
public int[][] _SpDepCnt = new int[50][];
public int[][] _SpReadType = new int[50][];

次に、配列内の配列を初期化します。

var length = 20;
for (int i = 0; i < length; i++)
{
    _SpDepCnt[i] = new int[length];
     _SpReadType[i] = new int[length];
}

2 番目の部分の長さが異なる可能性があるため、ジャグ配列と呼ばれます。たとえば、次のようになります。

[1,2,3,4]
[5,6]
[7,8,9]

多次元配列[,]

多次元配列int[,]と呼ばれる型を使いたいと思います。2 つの固定次元の配列を作成します。

public int[,] _SpDepCnt = new int[50, 20];
public int[][] _SpReadType = new int[50, 20];

多次元配列は、インデックスごとに同じサイズの配列を作成します。

[1,2,3]
[4,5,6]
[7,8,9]
于 2013-04-03T08:12:10.143 に答える