Cours

C# Leçon 4

Tableaux et listes

Ranger plusieurs valeurs : les tableaux de taille fixe et les listes qui grandissent, parcourues avec foreach.

20 min

À la fin de cette leçon, tu sauras

  • Créer un tableau et lire ses éléments
  • Utiliser une List qui peut grandir
  • Parcourir une collection avec foreach

Les tableaux

string[] jours = { "lundi", "mardi", "mercredi" };
int[] notes = new int[5];   // 5 cases, toutes à 0

Console.WriteLine(jours[0]);        // lundi
Console.WriteLine(jours.Length);    // 3
notes[2] = 15;

Un tableau a une taille fixe, décidée à sa création. Les cases sont numérotées à partir de 0. Lire la case jours[3] d'un tableau de 3 éléments plante le programme.

Les listes

Quand on ne connaît pas le nombre d'éléments à l'avance, on utilise une List, qui grandit et rétrécit à la demande. Entre les chevrons, on indique le type des éléments.

List<string> courses = new List<string>();
courses.Add("pain");
courses.Add("lait");
courses.Add("œufs");
courses.Remove("lait");

Console.WriteLine(courses.Count);        // 2
Console.WriteLine(courses.Contains("pain"));  // True

Attention au nom : la taille d'un tableau est Length, celle d'une liste est Count.

foreach

foreach (string article in courses)
{
    Console.WriteLine($"- {article}");
}

foreach passe sur chaque élément, sans avoir à gérer de compteur. C'est la façon la plus simple et la plus sûre de parcourir une collection.

Astuce : on peut aussi remplir une liste dès sa création : var notes = new List<int> { 12, 15, 9 };.

À toi de jouer

  • crée une List<string> nommée langages ;
  • ajoute-lui au moins 3 langages avec Add ;
  • affiche chaque langage avec une boucle foreach.
Program.cs
  • Une List<string> nommée langages est créée
  • Au moins 3 éléments ajoutés avec Add
  • Un foreach parcourt langages
  • Chaque élément est affiché
Bloqué ? Voir une solution
List<string> langages = new List<string>();
langages.Add("C#");
langages.Add("SQL");
langages.Add("PHP");

foreach (string langage in langages)
{
    Console.WriteLine(langage);
}

Quiz

1Comment obtenir le nombre d'éléments d'une List ?
2Avec int[] t = { 4, 8, 15 };, que vaut t[2] ?
3Quand préférer une List à un tableau ?