Contenu du cours
Bases de C#
Bases de C#
Tableaux Multidimensionnels
Les tableaux peuvent également contenir d'autres tableaux en leur sein. Ces tableaux sont appelés tableaux multidimensionnels. Ils sont utiles lorsque l'on souhaite stocker des données sous forme tabulaire, avec des lignes et des colonnes, ou sous forme de matrice.
On peut déclarer un tableau à deux dimensions en utilisant la syntaxe suivante :
main
datatype[][] arrayName = new datatype[lengthX, lengthY];
Le tableau créé avec la syntaxe ci-dessus aura une longueur (taille) égale à lengthX
et chaque élément sera un tableau de taille lengthY
:
main
int[,] numbers = new int[3,3];
Dans l'exemple ci-dessus, nous créons une nouvelle matrice bidimensionnelle de taille 3x3. Cela signifie qu'elle peut contenir 9
nombres entiers. Nous pouvons initialiser un tableau 2D en utilisant la syntaxe suivante :
main
datatype [,] arrayName = { { element1, element2, ... }, { element1, element2, ...}, ... };
Considérez l'exemple avec des valeurs réelles :
main
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int[,] numbers = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } }; // Displaying the array foreach (int number in numbers) { Console.Write(number + " "); } } } }
L'exemple ci-dessus est une matrice 3x4 pouvant stocker 12 éléments. L'illustration suivante montre une matrice 3x3 sous forme visuelle :
L'indexation dans les tableaux multidimensionnels est similaire à celle des tableaux classiques. Il suffit d'indiquer l'indice de la ligne et de la colonne.
main
arrayName[row, column];
Par exemple, si nous voulons accéder à 6
dans le tableau numbers
(illustré ci-dessus), nous accéderons à la 2ème ligne et à la 3ème colonne :
main
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int[,] numbers = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } }; Console.WriteLine(numbers[1, 2]); // Output: 7 } } }
Les tableaux de dimensions supérieures sont également possibles en ajoutant des virgules supplémentaires à la syntaxe de déclaration :
main
int[,,] myArray3D = new int[3, 4, 5]; int[,,,] myArray4D = new int[5, 4, 9, 10]; // Similarly more complex ones are possible as well using the same pattern
Dans le code ci-dessus, myArray3D
comportera 60
éléments (3x4x5), tandis que myArray4D
en aura 1800
(5x4x9x10).
Voici comment initialiser un tableau à trois dimensions :
main
int[,,] numbers = { { {1, 2, 3}, { 4, 5, 6 }, {7, 8, 9} }, { {10, 11, 12}, {13, 14, 15}, {16, 17, 18} }, { {19, 20, 21}, {22, 23, 24}, {25, 26, 27} } };
Merci pour vos commentaires !