我想創建一個二維數組,用其他數組來表示列。C# - 如何將數組聲明爲二維數組的列
繼承人是我想要做的事:
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) - 我如何獲取我的新鋸齒陣列內的值? – Stephen
@Stephen'item [0]'是一個*數組*因此它的默認值是'null',直到您初始化爲止;你正試圖索引一個不存在的數組'null [0]'。這與你在執行'var myObjectArray = new object [5];'時得到的行爲是一樣的。 'myObjectArray [0]'是'null'。當數組被創建時,其成員被初始化爲數組的類型默認值。 – InBetween
@stakz好了,我以爲我有,但由於某種原因它仍然出現空。我基本上完成了item0 = new int [22] {0,0,0,0,0,0 ...};然後完成itemList = new int [10] [];接着是itemList [0] = item0; - 然後當我做如果(itemList [0] [0] == 0)我得到一個空引用,但我已經定義它已經0,或者我必須第二次定義它,一旦我已經初始化它進入第二個數組?它是否恢復爲空? – Stephen