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.cs
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.cs
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.cs
datatype [,] arrayName = { { element1, element2, ... }, { element1, element2, ...}, ... };
Considérez l'exemple avec des valeurs réelles :
main.cs
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.cs
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.cs
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.cs
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.cs
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 !