2011-03-21 7 views
4

J'ai déjà regardé quelques thèmes de tableau mais je suis toujours perplexe.Ajouter un élément à un tableau Jagged

Je souhaite ajouter une nouvelle ligne à mon tableau en dents de scie - et suis strugigng pour obtenir la bonne syntaxe ..

 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 }; 

Alors maintenant, si je veux ajouter

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

si le tableau finit par être comme indiqué ci-dessous comment puis-je l'obtenir - merci d'avance - Un Noob d'Angleterre. (Et un grand merci à l'avance)

 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

Le « si le tableau finit par être comme le montre » une partie est pas très claire. Que signifient ces marqueurs «**»? Votre code actuel est OK pour remplacer le premier tableau. –

+0

C'était le gras dans l'éditeur qui va mal/faux - involontaire. – Gopher2011

+0

Après votre modification de votre échantillon a encore 2 lignes à l'index 0. Peut-être indiquer clairement: Remplacer une ligne ou Insérer une ligne ?? –

Répondre

2

Que voulez-vous faire? Insérer une ligne entre 0 et 1? Ou remplacer la ligne existante 0?

Votre ligne:

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

remplace simplement la ligne existante 0.

Vous ne pouvez pas insérer une ligne dans un tableau. Pour ce faire, utilisez une liste à la place:

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

... 

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

Ou si vous voulez remplacer la ligne existante, alors simplement:

+0

Merci les gars, c'était génial - je vais essayer une liste. – Gopher2011

+0

Insérer une nouvelle ligne supplémentaire – Gopher2011

2

Vous pouvez créer une collection ou un List<int[]>

Ensuite, vous pouvez insérer un élément dans ce à un certain indice.

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

Si vous souhaitez que la liste initiale soit de longueur variable, vous ne pouvez pas utiliser un tableau. Utilisez une liste à la place.

Cela devrait fonctionner:

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

ensuite d'insérer votre nouveau tableau:

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