1. Introduction
Imagine un tableau classique comme une longue boîte à pizza où toutes les parts sont alignées — c’est bon, mais un peu monotone.
Maintenant, imagine un planning de boulot ou un échiquier. Là, tout est organisé en lignes et colonnes — donc en tableau. Voilà, c’est exactement le cas d’usage classique pour un tableau à deux dimensions.
Dans la vraie vie, les tableaux à deux dimensions sont partout :
- Des tableaux de salaires des employés (lignes — employés, colonnes — mois).
- Une image à l’écran (chaque "case" — la couleur d’un pixel, avec deux coordonnées : X et Y).
- Calculs matriciels et traitement de données.
- Un échiquier ou un plateau de morpion.
Parfois, un tableau à deux dimensions s’appelle une matrice (ce mot vient des maths).
Il y a plein de situations où, en tant que dev, tu vas avoir besoin d’un tableau à deux dimensions. Presque n’importe quel jeu de société, c’est un tableau 2D tout prêt : «Échecs», «Dames», «Morpion», «Bataille navale» :
Le plateau de jeu des «Échecs» ou de la «Bataille navale» est juste parfait pour un tableau à deux dimensions, où tu utilises des nombres comme coordonnées des cases. Pas «pion e2 → e4», mais «pion (4,1) → (4,3)». Franchement, c’est même plus simple pour toi en tant que dev.
2. Syntaxe de déclaration des tableaux à deux dimensions
Ça fait peur juste avant la première déclaration ! On va voir ça étape par étape.
Règle générale
type[,] nomTableau;
Ici, la virgule , dans les crochets — c’est pas une erreur de compilateur après une nuit blanche au café, c’est pour dire : le tableau est à deux dimensions.
Exemples
int[,] matrice;
double[,] tableauNotes;
string[,] echiquier;
Création d’un tableau
On définit les tailles : nombre de lignes et de colonnes.
matrice = new int[3, 4]; // 3 lignes, 4 colonnes
C’est un tableau 3x4 : imagine une feuille Excel avec 3 lignes et 4 colonnes.
On peut déclarer la variable et créer le tableau à deux dimensions direct :
int[,] matrice = new int[3, 4];
On peut aussi initialiser direct avec des valeurs (pareil qu’avec un tableau à une dimension) :
int[,] exemple = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
// Tableau 3 lignes, 3 colonnes
Important : TOUTES les lignes doivent avoir la même longueur quand tu initialises comme ça. Tu peux pas faire la première ligne avec 3 éléments et la deuxième avec 2.
Schéma visuel
┌─────┬─────┬─────┬─────┐
│ 0 │ 1 │ 2 │ 3 │ ← colonnes (Columns)
├─────┼─────┼─────┼─────┤
│ 0,0 │0,1 │0,2 │0,3 │ ← ligne 0 (Row 0)
├─────┼─────┼─────┼─────┤
│ 1,0 │1,1 │1,2 │1,3 │ ← ligne 1 (Row 1)
├─────┼─────┼─────┼─────┤
│ 2,0 │2,1 │2,2 │2,3 │ ← ligne 2 (Row 2)
└─────┴─────┴─────┴─────┘
Chaque élément est défini par une paire d’indices [ligne, colonne].
3. Indexation et accès aux éléments
Dans un tableau à deux dimensions, pour accéder à un élément, tu mets deux indices :
- Le premier — numéro de la ligne
- Le deuxième — numéro de la colonne
matrice[1, 2] = 99; // Dans la deuxième ligne (indice 1), troisième colonne (indice 2)
Si t’es habitué aux échecs, petit rappel : l’indexation commence à zéro. Donc, le premier élément c’est [0, 0].
Écriture et lecture
int[,] donnees = new int[5, 2];
donnees[1, 1] = 5; // écriture
int valeur = donnees[1, 1]; // lecture
Voilà à quoi ça ressemble en mémoire :
4. Remplissage d’un tableau à deux dimensions
On va écrire un code qui remplit une matrice avec des nombres de 1 à 12, histoire de bien piger comment ça marche.
int[,] matrice = new int[3, 4];
int valeur = 1;
for (int ligne = 0; ligne < 3; ligne++)
{
for (int col = 0; col < 4; col++)
{
matrice[ligne, col] = valeur;
valeur++;
}
}
Ici, la boucle extérieure parcourt les lignes, la boucle intérieure — les colonnes.
Illustration :
Après exécution :
┌────┬────┬────┬────┐
│ 1 │ 2 │ 3 │ 4 │
├────┼────┼────┼────┤
│ 5 │ 6 │ 7 │ 8 │
├────┼────┼────┼────┤
│ 9 │10 │11 │12 │
└────┴────┴────┴────┘
5. Dimensions : obtenir le nombre de lignes et de colonnes
Souvent, t’as besoin de connaître la taille du tableau "à la volée". En C#, t’as une méthode bien pratique : GetLength().
int[,] matrice = new int[3, 4];
int lignes = matrice.GetLength(0); // nombre de lignes (première dimension) - 3
int colonnes = matrice.GetLength(1); // nombre de colonnes (deuxième dimension) - 4
Console.WriteLine($"Lignes : {lignes}, Colonnes : {colonnes}");
ne confonds pas avec Length — pour un tableau à deux dimensions, c’est le nombre total de tous les éléments (lignes × colonnes).
6. Affichage d’un tableau à deux dimensions à l’écran
Pour afficher un tableau 2D, on utilise souvent une double boucle — c’est comme dessiner un labyrinthe dans la console. Exemple :
for (int ligne = 0; ligne < matrice.GetLength(0); ligne++)
{
for (int col = 0; col < matrice.GetLength(1); col++)
{
Console.Write(matrice[ligne, col] + "\t"); // "\t" — tabulation pour faire joli
}
Console.WriteLine(); // saut de ligne
}
Exemple d’affichage :
1 2 3 4
5 6 7 8
9 10 11 12
Au fait, là tu viens d’apprendre à "dessiner" des tableaux stylés avec juste quelques lignes de code !
7. Tableaux multidimensionnels
Et encore un truc cool sur les tableaux, auquel tu t’attendais sûrement. Si on peut faire un tableau à deux dimensions, on peut faire un tableau à trois dimensions, non ?
Ouais, tu peux créer un tableau de n’importe quelle dimension. Ces tableaux s’appellent multidimensionnels.
Comment déclarer des tableaux multidimensionnels
Il suffit de mettre le nombre de dimensions qu’il te faut, séparées par des virgules :
int[,,,] matrice = new int[2, 3, 4, 5];
Ici, on a un tableau à quatre dimensions :
- 2 éléments pour la première coordonnée,
- 3 — pour la deuxième,
- 4 — pour la troisième,
- 5 — pour la quatrième.
En mémoire, ce genre de tableau c’est un gros “cube” de données, rangé à la suite.
Comment accéder aux éléments
On accède à un élément en mettant tous les indices d’un coup :
matrice[0, 1, 2, 3] = 42;
int valeur = matrice[1, 2, 0, 4];
- Les indices commencent à zéro, comme toujours en C#.
- Au total, ce tableau aura 2 × 3 × 4 × 5 = 120 éléments.
Exemples pratiques de tableaux multidimensionnels
- 2D — tableaux, échiquiers, images.
- 3D — “cubes” en graphisme, données pour calculs scientifiques (genre température à différents points dans l’espace et le temps).
- 4D et plus — c’est rare, mais ça existe en maths avancées, simulations, machine learning, etc.
GO TO FULL VERSION