2次元配列を作成しようとしています。2次元配列の列として配列を宣言する方法
HERESに私は何をしようとしている:
public int[] item0;
public int[] item1;
public int[] item2;
public int[] item3;
public int[] item4;
public int[] item5;
public int[] item6;
public int[] item7;
public int[] item8;
public int[] item9;
item0 = new int[22];
item1 = new int[22];
item2 = new int[22];
item3 = new int[22];
item4 = new int[22];
item5 = new int[22];
item6 = new int[22];
item7 = new int[22];
item8 = new int[22];
item9 = new int[22];
itemList = new int[10,22] {
{item0},
{item1},
{item2},
{item3},
{item4},
{item5},
{item6},
{item7},
{item8},
{item9}
};
しかし、私はそれが予想される長さを拾っていないことを私に言って、コンソールのエラーが発生します。
私は多くの古い質問を見回しましたが、このような配列を定義する方法は決して明確になりません。どんな助けもありがとう。
おかげで、ジャグ配列は、ここでの答えのようです。しかし、別の問題が発生しています。if(itemList [0] [0] == 1)を使用するためのnull参照コンソールエラーが発生しています - 新しいギザギザの配列の内部で値を取得するにはどうすればいいですか? – Stephen
@Stephen 'item [0]'は*配列*なので、初期化するまでデフォルト値は 'null'です。存在しない配列 'null [0]'のインデックスを作成しようとしています。 'var myObjectArray = new object [5];'を実行したときと同じ動作です。 'myObjectArray [0]'は 'null'です。配列が作成されると、そのメンバは配列の型のデフォルト値に初期化されます。 – InBetween
@stakzよく私は持っていると思ったが、それでも何らかの理由でnullになる。私は基本的にitem0 = new int [22] {0,0,0,0,0,0 ...};を実行しました。次にitemList = new int [10] [];を実行します。それに続くitemList [0] = item0; - 私は(itemList [0] [0] == 0)場合は、null参照を取得していますが、私はすでに0として定義したか、または私はそれを初期化した後にもう一度定義する必要があります2番目の配列に?それはヌルに戻りますか? – Stephen