Les Listes
En C#, une liste (List<T>) est une collection d'éléments du même
type qui peut grandir ou rétrécir dynamiquement.
Contrairement aux tableaux (array) dont la taille est fixe, une
liste peut recevoir de nouveaux éléments ou en perdre.
1. Déclarer une liste
Pour utiliser une liste, on doit importer l'espace de noms :
using System.Collections.Generic;
Ensuite, on peut créer une liste :
// Liste de nombres entiers
List<int> nombres = new List<int>();
// Liste de chaînes de caractères
List<string> prenoms = new List<string>();
Pourquoi le mot-clé new ?
En C#, new sert à créer un nouvel objet.
Une liste est un objet, et avant de l'utiliser il faut la construire
(l'instancier).
Exemple :
List<int> nombres = new List<int>();
List<int>→ c'est le type (une liste de nombres entiers).nombres→ c'est le nom de la variable qui va contenir la liste.new List<int>()→ c'est la création d'une nouvelle liste vide en mémoire.
⚠️ Si on oublie new, la liste n'existe pas encore et on ne peut pas
ajouter d'éléments.
Cela provoque une erreur à l'exécution (NullReferenceException).
👉 Pour imaginer facilement :
- new = fabriquer une nouvelle boîte vide.
- Ensuite on peut mettre des choses dans la boîte avec .Add().
2. Ajouter un élément avec .Add()
La méthode .Add() permet d'ajouter un nouvel élément à la fin de la
liste.
List<string> fruits = new List<string>();
fruits.Add("Pomme");
fruits.Add("Banane");
fruits.Add("Cerise");
foreach (string fruit in fruits)
{
Console.WriteLine(fruit);
}
Résultat :
Pomme
Banane
Cerise
3. Supprimer un élément avec .RemoveAt()
La méthode .RemoveAt(index) permet de supprimer un élément en
fonction de sa position dans la liste.
⚠️ L'indexation commence à 0.
List<string> fruits = new List<string>() { "Pomme", "Banane", "Cerise" };
// Supprime l’élément à l’index 1 (ici "Banane")
fruits.RemoveAt(1);
foreach (string fruit in fruits)
{
Console.WriteLine(fruit);
}
Résultat :
Pomme
Cerise
4. Supprimer un élément avec .Remove()
La méthode .Remove(valeur) supprime le premier élément qui
correspond à la valeur donnée.
Si la valeur existe plusieurs fois, seule la première occurrence est
retirée.
List<string> fruits = new List<string>() { "Pomme", "Banane", "Cerise", "Banane" };
// Supprime uniquement la première "Banane"
fruits.Remove("Banane");
foreach (string fruit in fruits)
{
Console.WriteLine(fruit);
}
Résultat :
Pomme
Cerise
Banane
5. Vérifier si un élément existe avec .Contains()
La méthode .Contains(valeur) permet de vérifier si un élément existe
dans la liste.\
Elle retourne un booléen (true ou false).
List<string> fruits = new List<string>() { "Pomme", "Banane", "Cerise" };
if (fruits.Contains("Banane"))
{
Console.WriteLine("Oui, la banane est dans la liste.");
}
else
{
Console.WriteLine("Non, la banane n'est pas dans la liste.");
}
Résultat :
Oui, la banane est dans la liste.
6. Exemple complet
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<int> nombres = new List<int>();
// On ajoute des nombres
nombres.Add(10);
nombres.Add(20);
nombres.Add(30);
Console.WriteLine("Liste initiale :");
foreach (int n in nombres)
{
Console.WriteLine(n);
}
// On supprime le 2ème élément (index 1 → 20)
nombres.RemoveAt(1);
Console.WriteLine("\nListe après RemoveAt :");
foreach (int n in nombres)
{
Console.WriteLine(n);
}
// On supprime la valeur 30 directement
nombres.Remove(30);
Console.WriteLine("\nListe après Remove(30) :");
foreach (int n in nombres)
{
Console.WriteLine(n);
}
// On vérifie si 10 est encore dans la liste
if (nombres.Contains(10))
{
Console.WriteLine("\nOui, 10 est encore présent dans la liste.");
}
}
}
Résultat :
Liste initiale :
10
20
30
Liste après RemoveAt :
10
30
Liste après Remove(30) :
10
Oui, 10 est encore présent dans la liste.
7. Points importants à retenir
- Une liste est comme une "boîte extensible" qui peut contenir plusieurs valeurs.\
.Add()→ ajoute un élément à la fin de la liste.\.RemoveAt(index)→ supprime un élément à la position indiquée.\.Remove(valeur)→ supprime le premier élément qui correspond à la valeur donnée.\.Contains(valeur)→ vérifie si une valeur existe déjà dans la liste.\- Les index commencent à 0.\
- Nécessite
using System.Collections.Generic;.\ new= créer une nouvelle liste vide en mémoire avant de l'utiliser.
✅ Vous pouvez maintenant manipuler facilement des listes en C#!
8. Tableau récapitulatif
| Méthode | Signature | Rôle | Retourne | Exemple |
|---|---|---|---|---|
Add |
void Add(T item) |
Ajoute un élément à la fin de la liste | — | fruits.Add("Pomme"); |
RemoveAt |
void RemoveAt(int index) |
Supprime l’élément à l’index donné | — | fruits.RemoveAt(0); // supprime le 1er |
Remove |
bool Remove(T item) |
Supprime la première occurrence de la valeur | true si supprimé, sinon false |
fruits.Remove("Banane"); |
Contains |
bool Contains(T item) |
Vérifie si la valeur existe dans la liste | true / false |
fruits.Contains("Cerise") |
ℹ️ Rappel : les index commencent à 0.
RemoveAtprovoquera une ArgumentOutOfRangeException si l’index n’existe pas.
Quiz
Testez vos connaissances ! 📝 Clique sur chaque question pour découvrir la réponse.
1️⃣ Que fait
fruits.Add("Pomme") ?
B. Ajoute "Pomme" à la fin de la liste
C. Insère "Pomme" au début de la liste
D. Trie la liste puis ajoute "Pomme"
✅ Afficher la réponse
Add ajoute toujours l’élément à la fin.
2️⃣ Quelle instruction supprime le 1er élément de la liste ?
fruits.RemoveAt(0)B.
fruits.RemoveFirst()C.
fruits.Remove("Pomme")D.
fruits.Delete(0)
✅ Afficher la réponse
RemoveAt(0) supprime l’élément à l’index 0 (le premier).
3️⃣ Que retourne
fruits.Remove("Banane") ?
trueB. Toujours
falseC.
true si une "Banane" a été supprimée, sinon falseD. Le nombre d'éléments supprimés
✅ Afficher la réponse
Remove(valeur) renvoie un booléen selon qu’une occurrence a été retirée.
4️⃣ Quelle est la différence entre
RemoveAt et Remove ?
B.
RemoveAt prend un index, Remove prend une valeurC.
RemoveAt prend une valeur, Remove prend un indexD.
Remove supprime toutes les occurrences automatiquement
✅ Afficher la réponse
RemoveAt(index) vise une position ; Remove(valeur) vise la première occurrence de la valeur.
5️⃣ Quel est le résultat de ce code ?
var nums = new List<int> { 1, 2, 2, 3 };
nums.Remove(2);
Console.WriteLine(nums.Contains(2));
A. Affiche falseB. Affiche
trueC. Compile pas
D. Dépend de l’OS
✅ Afficher la réponse
Remove(2) retire seulement la première occurrence ; il reste encore un 2, donc Contains(2) affiche true.
Pour aller plus loin
- Documentation Microsoft – Les list
Explications complètes sur les List avec exemples
- COURS C# - Module 2 - Fondamentaux : Les listes (YouTube)
Une vidéo pédagogique en français qui explique la syntaxe, la logique et l’utilisation ddes List de Christophe Mommer.