C-SHARP - 4.3 Listes
Cette vidéo aborde une notion essentielle en C# : les listes (List<T>). Une liste ressemble à un tableau mais offre beaucoup plus de flexibilité : sa taille n'est pas fixe, on peut ajouter ou retirer des éléments à volonté.
Déclarer une liste
Deux écritures possibles. La syntaxe explicite : List<string> ma_liste = new List<string>();. La syntaxe avec var pour la lisibilité : var ma_liste = new List<string>();. Contrairement aux tableaux, on n'a pas besoin de spécifier de taille à la création.
Les méthodes essentielles
Add(element): ajoute un élément en fin de liste.Count: équivalent deLengthpour les tableaux, renvoie le nombre d'éléments.Remove(valeur): supprime la première occurrence correspondant à la valeur.RemoveAt(index): supprime l'élément à l'index donné.- Accès indexé :
liste[0]pour lire ou modifier une case précise.
var liste = new List<string>();
liste.Add("Bonjour");
liste.Add("Hello");
liste[1] = "Salut"; // modifier
liste.Remove("Bonjour"); // supprimer par valeur
liste.RemoveAt(0); // supprimer par index
for (int i = 0; i < liste.Count; i++)
{
Console.WriteLine(liste[i]);
}
Exercice : équipe de foot
Construisons un programme qui demande à l'utilisateur de saisir les joueurs de son équipe, sans connaître à l'avance leur nombre. Astuce : une boucle while(true) qui s'interrompt sur une chaîne vide via un break :
var liste_joueurs = new List<string>();
while (true)
{
Console.WriteLine("Entrer le nom d'un joueur (Sinon taper entrer pour terminer) :");
string joueur = Console.ReadLine();
if (joueur == "") break;
liste_joueurs.Add(joueur);
}
for (int i = 0; i < liste_joueurs.Count; i++)
{
Console.WriteLine(liste_joueurs[i]);
}
Le programme s'adapte à n'importe quelle taille d'équipe. Tant que l'utilisateur saisit un nom, on l'ajoute. S'il appuie sur Entrée à vide, la condition du if est satisfaite et le break sort de la boucle. Cette combinaison liste + boucle infinie contrôlée est un pattern extrêmement courant. Les listes offrent énormément d'autres méthodes que nous découvrirons dans de futures vidéos.
En résumé
Une liste en C# permet de stocker plusieurs éléments sans fixer la taille à l'avance, contrairement aux tableaux. On déclare une liste avec `List<type>` ou `var`, puis on ajoute des éléments via la méthode `Add()`, on les modifie par index, et on les supprime avec `Remove()` ou `RemoveAt()`. Les listes sont parcourues en boucle for avec la propriété `Count` pour obtenir le nombre d'éléments.
Points clés
- Une liste est similaire au tableau mais sa taille est dynamique et non fixée
- Déclaration : `List<type> nom = new List<type>();` ou initialisée avec des accolades et des valeurs
- Méthode `Add()` pour ajouter des éléments à la liste sans limite
- Propriété `Count` pour obtenir le nombre total d'éléments dans la liste
- Méthode `Remove(valeur)` supprime la première occurrence; `RemoveAt(index)` supprime par position
- Accès par index avec crochets : `liste[0]` pour le premier élément, comme les tableaux
Questions fréquentes
Quelle est la différence principale entre une liste et un tableau en C# ?
Une liste a une taille dynamique et peut accueillir autant d'éléments qu'on souhaite ajouter, tandis qu'un tableau a une taille fixée à sa création. Les listes offrent plus de flexibilité avec des méthodes comme Add() et Remove().
Comment ajouter et supprimer des éléments d'une liste ?
Pour ajouter : `maListe.Add(valeur);`. Pour supprimer la première occurrence d'une valeur : `maListe.Remove(valeur);`. Pour supprimer par index : `maListe.RemoveAt(index);`.
Comment parcourir tous les éléments d'une liste en C# ?
Utilisez une boucle for classique : `for (int i = 0; i < maListe.Count; i++) { Console.WriteLine(maListe[i]); }`. La propriété `Count` retourne le nombre total d'éléments.