2011-03-21 3 views
4

Я уже рассмотрел несколько тем массива, но я все еще в тупике.Добавить элемент в массив Jagged

Я хочу, чтобы добавить новую строку в мой рваный массив - и я 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 }; 

так массив заканчивается тем, что показано ниже, как я его понимаю - заблаговременно - A 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

«поэтому массив заканчивает тем, что, как показано» часть не очень понятно. Что означают эти '**' маркеры? Ваш текущий код в порядке для замены первого массива. –

+0

Это был смелый в редакторе плохой/неправильный - непреднамеренный. – Gopher2011

+0

После вашего редактирования у вашего образца все еще есть 2 строки с индексом 0. Может быть, понятно: Заменить строку или Вставить строку ?? –

ответ

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

+0

Вставить новую дополнительную строку – Gopher2011

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 }); 
Смежные вопросы