2011-03-21 119 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 });