Chargement...

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 :


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 for et foreach.
  • Les tableaux multidimensionnels et irréguliers sont pris en charge.
  • La classe Array fournit 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