2011-03-21 135 views
4

我已經看過一些數組主題,但我仍然難住。將項目添加到鋸齒陣列

我想一個新的行添加到我的鋸齒形陣列 - 和我strugigng得到語法正確的..

 int[][] intJaggedArray = new int[7][]; 

     intJaggedArray[0] = new int[3] { 1, 1, 1 }; 
     intJaggedArray[1] = new int[3] { 2, 2, 2 }; 
     intJaggedArray[2] = new int[3] { 3, 3, 3 }; 
     intJaggedArray[3] = new int[3] { 4, 4, 4 }; 
     intJaggedArray[4] = new int[3] { 5, 5, 5 }; 
     intJaggedArray[5] = new int[3] { 6, 6, 6 }; 
     intJaggedArray[6] = new int[3] { 7, 7, 7 }; 

所以,現在如果我想補充

 intJaggedArray[0] = new int[3] { 1, 1, 2 }; 

所以陣列結果如下所示,我如何獲得成功 - 事先感謝 - 來自英格蘭的noob。 (並提前一個大感謝)

 intJaggedArray[0] = new int[3] { 1, 1, 1 }; 
     intJaggedArray[0] = new int[3] { 1, 1, 2 }; 
     intJaggedArray[1] = new int[3] { 2, 2, 2 }; 
     intJaggedArray[2] = new int[3] { 3, 3, 3 }; 
     intJaggedArray[3] = new int[3] { 4, 4, 4 }; 
     intJaggedArray[4] = new int[3] { 5, 5, 5 }; 
     intJaggedArray[5] = new int[3] { 6, 6, 6 }; 
     intJaggedArray[6] = new int[3] { 7, 7, 7 }; 
+1

的「這樣的陣列最終被如」部分還不是很清楚。那些**標記是什麼意思?您當前的代碼可以替換第一個數組。 – 2011-03-21 09:57:59

+0

這是編輯中的大膽壞/錯 - 無意。 – Gopher2011 2011-03-21 10:40:09

+0

編輯完成後,您的示例在索引0處仍有2行。可能清楚說明:替換行或插入行? – 2011-03-21 11:30:06

回答

2

那你想幹什麼?在0和1之間插入一條線?或者替換現有的行0?

你行:

intJaggedArray[0] = new int[3] { 1, 1, 2 }; 

簡單地替換現有的線0

你不能在一個陣列插入一行。要做到這一點,用一個列表,而不是:

List<int[]> myList = new List<int[]>(); 
myList.Add(new int[] {...}); 
myList.Add(new int[] {...}); 
myList.Add(new int[] {...}); 

... 

myList.Insert(1, new int[] {...}); 

或者,如果您要更換現有生產線,後來乾脆:

+0

謝謝你們,這非常棒 - 我會嘗試一個列表。 – Gopher2011 2011-03-21 10:42:40

+0

插入一條新的附加線 – Gopher2011 2011-03-21 10:59:46

2

您可能希望創建一個集合或List<int[]>

然後,你可以在某一指數插入項目到它。

List<int[]> x = new List<int[]>(); 
x.Insert(3, new int[3] { 1, 2, 3 }); 
1

如果您希望初始列表具有可變長度,則不能使用數組。改爲使用列表。

這應該工作:

List<int[]> intJaggedList = new List<int[]>(); 
intJaggedList.Add(new int[3] { 1, 1, 1 }); 
intJAggedList.Add(new int[3] { 2, 2, 2 }); 
... 

然後插入新的數組:

intJaggedList.Insert(1, new int[3] { 1, 1, 2 });