Tableaux (Arrays) en C#
Apprenez les tableaux en C# : déclaration, indexation, parcours avec boucles et opérations courantes avec exemples.
En C#, les tableaux (arrays) sont utilisés pour stocker plusieurs valeurs du même type de manière consécutive en mémoire.
Grâce à l’indexation, on accède rapidement aux éléments.
Cet article propose une introduction détaillée – de la déclaration des tableaux aux tableaux multidimensionnels,
en passant par les méthodes de la classe Array et des exemples pratiques.
Qu’est-ce qu’un tableau ?
Un tableau est une structure où des données du même type sont stockées dans des cellules mémoire consécutives. Chaque élément est accessible via un index. Les index commencent à 0.
int[] nombres = new int[5]; // un tableau de 5 entiers
Déclaration et valeurs par défaut
Lors de la déclaration d’un tableau, on précise sa taille. Si aucun élément n’est assigné, les valeurs par défaut s’appliquent :
int→ 0bool→ falsestring→ null
string[] noms = new string[3];
Console.WriteLine(noms[0]); // null
Affectation et accès (Indexation)
L’accès aux éléments se fait par leur index. Comme les index commencent à 0, le dernier élément se trouve à Length - 1.
int[] notes = new int[5];
notes[0] = 85;
notes[1] = 90;
notes[2] = 70;
notes[3] = 75;
notes[4] = 60;
Console.WriteLine(notes[1]); // 90
Console.WriteLine(notes[^1]); // 60, Renvoie le dernier élément (Length - 1)
int[] sousNotes = notes[1..4]; // Un sous-tableau : 90, 70, 75
notes[5] = 100; // Cette ligne déclenche une IndexOutOfRangeException
L’accès à un index en dehors des limites du tableau provoque une IndexOutOfRangeException.
Exemple : pour array[4], les index valides sont 0, 1, 2, 3.
Les valeurs comme -1, 4 ou 5 génèrent une erreur. Le premier élément est toujours accessible par l’index 0.
Raccourcis d’initialisation
Vous pouvez assigner directement les valeurs lors de la création d’un tableau.
int[] nombres = { 10, 20, 30 };
var lettres = new char[] { 'A', 'B', 'C' };
Parcourir un tableau avec des boucles
On utilise les boucles for et foreach pour parcourir les éléments d’un tableau.
int[] nombres = { 3, 6, 9 };
// avec for
for (int i = 0; i < nombres.Length; i++)
Console.WriteLine(nombres[i]);
// avec foreach
foreach (var n in nombres)
Console.WriteLine(n);
Tableaux multidimensionnels (2D, 3D)
Les tableaux multidimensionnels sont utilisés pour stocker des données sous forme de tables ou de matrices. On peut y accéder par index ou parcourir tous les éléments avec des boucles imbriquées.
int[,] matrice = new int[2, 3]
{
{1, 2, 3},
{4, 5, 6}
};
Console.WriteLine(matrice[1, 2]); // 6
// Boucles for imbriquées
for (int i = 0; i < matrice.GetLength(0); i++) // lignes
{
for (int j = 0; j < matrice.GetLength(1); j++) // colonnes
{
Console.Write(matrice[i, j] + " ");
}
Console.WriteLine();
}
// Résultat :
6
1 2 3
4 5 6
Tableaux irréguliers (Jagged Arrays)
Dans un tableau irrégulier, chaque ligne peut avoir une longueur différente. Cela le distingue des matrices.
int[][] jagged = new int[3][];
jagged[0] = new int[] {1, 2};
jagged[1] = new int[] {3, 4, 5};
jagged[2] = new int[] {6};
Console.WriteLine(jagged[1][2]); // 5
La classe Array et ses méthodes utiles
En C#, tous les tableaux héritent de la classe Array. Parmi les méthodes les plus utilisées :
int[] nombres = { 5, 2, 9, 1, 7 };
Array.Sort(nombres); // Trier
Array.Reverse(nombres); // Inverser
int index = Array.IndexOf(nombres, 9); // Rechercher un élément
Console.WriteLine(index);
Exemple : Notes des élèves
Dans l’exemple suivant, les notes des élèves sont stockées dans un tableau et la moyenne est calculée.
int[] notes = { 80, 70, 95, 60, 100 };
int somme = 0;
foreach (var n in notes)
somme += n;
double moyenne = (double)somme / notes.Length;
Console.WriteLine($"Moyenne : {moyenne}");
TL;DR
- Les tableaux stockent des valeurs du même type de façon consécutive en mémoire.
- Les index commencent à 0 ; les valeurs par défaut sont celles du type.
- On peut parcourir un tableau avec
foretforeach. - Les tableaux multidimensionnels et irréguliers sont pris en charge.
- La classe
Arrayfournit des méthodes utiles.
Exemple : Points des participants
Dans cet exemple, l’utilisateur saisit le nombre de participants et leurs points.
Le programme calcule ensuite le total et la moyenne.
La méthode int.TryParse est utilisée pour vérifier si les valeurs saisies sont des entiers valides.
using System;
using System.Linq;
class Program
{
static void Main()
{
int[] points = null;
int nombre = 0;
Console.Write("Nombre de participants : ");
// Lire l’entrée en string et la convertir en int
if (!int.TryParse(Console.ReadLine(), out nombre))
{
// Si la conversion échoue → fin du programme avec message
Console.WriteLine("\n\nValeur non entière saisie.");
return;
}
else if (nombre > 10 || nombre < 3)
{
// Si la valeur est valide mais hors de l’intervalle 3–10 → invalide
Console.WriteLine("\n\nNombre de participants invalide.");
return;
}
// Valeur valide → créer un tableau de la taille donnée
points = new int[nombre];
int i = 0;
// Début de la boucle
while (i < points.Length)
{
// Saisie des points de chaque participant
Console.Write($"{i + 1}. participant : ");
if (!int.TryParse(Console.ReadLine(), out points[i]))
{
// Si la saisie est invalide → fin de la boucle avec message
Console.WriteLine("\n\nValeur non entière saisie.");
break;
}
i++;
}
// Après la boucle, afficher total et moyenne
Console.WriteLine($"Total des points : {points.Sum()}");
Console.WriteLine($"Moyenne des points : {points.Average()}");
}
}
Articles connexes
Boucles en C# (for, foreach, while, do-while)
Apprenez à utiliser les boucles for, foreach, while et do-while en C# pour gérer des actions répétitives avec des exemples pratiques.
Collections en C# : Liste, Dictionnaire, File, Pile
Découvrez les collections en C# (List, Dictionary, Queue, Stack) pour gérer des données efficacement avec exemples.
Génériques en C# (List<T>, Dictionary<TKey,TValue>)
Apprenez les génériques en C# (List<T>, Dictionary<TKey,TValue>) pour écrire un code réutilisable et typé, avec exemples.
Types de données de base en C#
Types de données de base en C# : numériques, textuels, logiques, orientés objet et nullables.