Qu'est-ce que les listes ?

Imaginons une situation où il est nécessaire de stocker les noms de tous les étudiants inscrits à un certain cours. La première solution qui vient à l'esprit est de créer un tableau :
index.cs
123456using System; class Program { string[] studentNames = new string[50]; }
Cependant, si à un moment donné il y a plus de 50 étudiants, nous ne pourrons pas stocker leurs noms. De même, dans une situation où il y a moins de 50 étudiants, les espaces inoccupés dans le tableau représenteront un gaspillage de mémoire - cela devient un problème surtout avec de grands tableaux.
Ici, nous avons besoin d'une nouvelle structure capable de stocker une quantité variable d'éléments. Heureusement, une telle structure existe déjà, elle s'appelle une Liste.
Les Listes sont très similaires aux Tableaux, cependant le nombre d'éléments stockés dans une liste est modifiable.

Il est possible de modifier les éléments existants dans un Tableau, cependant il n'est pas possible d'y ajouter de nouvelles entrées.
La syntaxe suivante permet de déclarer une liste vide :

En utilisant cette syntaxe, il est possible de créer une liste pour stocker les noms des étudiants :
index.cs
12345678910using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); } }
Il est important de noter qu'il est nécessaire d'importer le module Generic
pour pouvoir utiliser les listes.
index.cs
1using System.Collections.Generic;
Il suffit d’ajouter cette ligne sous using System;
pour importer le module requis.
Méthode Add()
On peut ajouter des éléments à une liste en utilisant la méthode Add
:
index.cs
123456789101112131415using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); students.Add("Anna"); students.Add("Laura"); students.Add("Jacob"); students.Add("Aron"); } }
Le code ci-dessus ajoutera quatre éléments à la liste students
.
Tout comme un tableau de type string
ne peut contenir que des éléments de type string
, une liste de type string
n’accepte que des éléments de type string
.
Indexation
Le premier élément est Anna
, il aura donc l’index 0
, tandis que Laura
aura l’index 1
, et ainsi de suite. Les éléments d’une liste peuvent être accédés via l’indexation comme pour un tableau :
index.cs
1234567891011121314151617using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); students.Add("Anna"); students.Add("Laura"); students.Add("Jacob"); students.Add("Aron"); Console.WriteLine(students[2]); } }
Méthode Count()
Il est possible d'obtenir la longueur d'une liste en utilisant son attribut Count
:
index.cs
123456789101112131415161718using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); students.Add("Anna"); students.Add("Laura"); students.Add("Jacob"); students.Add("Aron"); Console.WriteLine(students[2]); Console.WriteLine(students.Count); } }
Longueur dynamique
Notez que la longueur d'une liste est dynamique (modifiable), elle change donc à mesure que l'on ajoute des éléments :
index.cs
1234567891011121314151617181920using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); Console.WriteLine(students.Count); students.Add("Anna"); Console.WriteLine(students.Count); students.Add("Laura"); Console.WriteLine(students.Count); students.Add("Jacob"); Console.WriteLine(students.Count); students.Add("Aron"); Console.WriteLine(students.Count); } }
Initialisation
Il est également possible d'initialiser une liste avec certains éléments en utilisant la syntaxe suivante :
List<dataType> listName = new List<dataType>{ element1, element2, … };
index.cs
12345678910111213141516using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string> { "Anna", "Laura", "Jacob", "Aron" }; // It is still possible to add additional elements after initialization students.Add("Markus"); Console.WriteLine(students.Count); Console.WriteLine(students[4]); } }
Parcours des listes
Parcours d'une liste de manière similaire à celle des tableaux
Utilisation d'une boucle for
index.cs
123456789101112131415using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string> { "Anna", "Laura", "Jacob", "Aron" }; for (int i = 0; i < students.Count; i++) { Console.WriteLine(students[i]); } } }
Utilisation d'une boucle foreach
index.cs
123456789101112131415using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string> { "Anna", "Laura", "Jacob", "Aron" }; foreach (string studentName in students) { Console.WriteLine(studentName); } } }
Pour raccourcir la syntaxe de déclaration, il est également possible d'utiliser la déclaration implicite. Pour rappel, une déclaration explicite consiste à spécifier le type de données lors de la déclaration de la variable.
index.cs
1float number = 7.9f;
En revanche, avec la déclaration implicite, il suffit d'utiliser le mot-clé var
et le compilateur déduit automatiquement le type de la variable en fonction de la valeur assignée :
index.cs
1var number = 7.9f;
Nous pouvons également utiliser la déclaration implicite lors de la déclaration des listes :
index.cs
1var numbers = new List<int> { 1, 2, 3, 4, 5 };
1. Quelle sera la sortie du code suivant :
2. Quel module doit être importé pour utiliser les listes ?
3. Quelle méthode est utilisée pour obtenir la taille (longueur) d'une liste ?
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
What is the difference between an array and a list in C#?
Can you show an example of how to add elements to a list?
How do I access elements in a list using indexing?
Awesome!
Completion rate improved to 2.04
Qu'est-ce que les listes ?
Glissez pour afficher le menu

Imaginons une situation où il est nécessaire de stocker les noms de tous les étudiants inscrits à un certain cours. La première solution qui vient à l'esprit est de créer un tableau :
index.cs
123456using System; class Program { string[] studentNames = new string[50]; }
Cependant, si à un moment donné il y a plus de 50 étudiants, nous ne pourrons pas stocker leurs noms. De même, dans une situation où il y a moins de 50 étudiants, les espaces inoccupés dans le tableau représenteront un gaspillage de mémoire - cela devient un problème surtout avec de grands tableaux.
Ici, nous avons besoin d'une nouvelle structure capable de stocker une quantité variable d'éléments. Heureusement, une telle structure existe déjà, elle s'appelle une Liste.
Les Listes sont très similaires aux Tableaux, cependant le nombre d'éléments stockés dans une liste est modifiable.

Il est possible de modifier les éléments existants dans un Tableau, cependant il n'est pas possible d'y ajouter de nouvelles entrées.
La syntaxe suivante permet de déclarer une liste vide :

En utilisant cette syntaxe, il est possible de créer une liste pour stocker les noms des étudiants :
index.cs
12345678910using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); } }
Il est important de noter qu'il est nécessaire d'importer le module Generic
pour pouvoir utiliser les listes.
index.cs
1using System.Collections.Generic;
Il suffit d’ajouter cette ligne sous using System;
pour importer le module requis.
Méthode Add()
On peut ajouter des éléments à une liste en utilisant la méthode Add
:
index.cs
123456789101112131415using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); students.Add("Anna"); students.Add("Laura"); students.Add("Jacob"); students.Add("Aron"); } }
Le code ci-dessus ajoutera quatre éléments à la liste students
.
Tout comme un tableau de type string
ne peut contenir que des éléments de type string
, une liste de type string
n’accepte que des éléments de type string
.
Indexation
Le premier élément est Anna
, il aura donc l’index 0
, tandis que Laura
aura l’index 1
, et ainsi de suite. Les éléments d’une liste peuvent être accédés via l’indexation comme pour un tableau :
index.cs
1234567891011121314151617using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); students.Add("Anna"); students.Add("Laura"); students.Add("Jacob"); students.Add("Aron"); Console.WriteLine(students[2]); } }
Méthode Count()
Il est possible d'obtenir la longueur d'une liste en utilisant son attribut Count
:
index.cs
123456789101112131415161718using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); students.Add("Anna"); students.Add("Laura"); students.Add("Jacob"); students.Add("Aron"); Console.WriteLine(students[2]); Console.WriteLine(students.Count); } }
Longueur dynamique
Notez que la longueur d'une liste est dynamique (modifiable), elle change donc à mesure que l'on ajoute des éléments :
index.cs
1234567891011121314151617181920using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); Console.WriteLine(students.Count); students.Add("Anna"); Console.WriteLine(students.Count); students.Add("Laura"); Console.WriteLine(students.Count); students.Add("Jacob"); Console.WriteLine(students.Count); students.Add("Aron"); Console.WriteLine(students.Count); } }
Initialisation
Il est également possible d'initialiser une liste avec certains éléments en utilisant la syntaxe suivante :
List<dataType> listName = new List<dataType>{ element1, element2, … };
index.cs
12345678910111213141516using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string> { "Anna", "Laura", "Jacob", "Aron" }; // It is still possible to add additional elements after initialization students.Add("Markus"); Console.WriteLine(students.Count); Console.WriteLine(students[4]); } }
Parcours des listes
Parcours d'une liste de manière similaire à celle des tableaux
Utilisation d'une boucle for
index.cs
123456789101112131415using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string> { "Anna", "Laura", "Jacob", "Aron" }; for (int i = 0; i < students.Count; i++) { Console.WriteLine(students[i]); } } }
Utilisation d'une boucle foreach
index.cs
123456789101112131415using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string> { "Anna", "Laura", "Jacob", "Aron" }; foreach (string studentName in students) { Console.WriteLine(studentName); } } }
Pour raccourcir la syntaxe de déclaration, il est également possible d'utiliser la déclaration implicite. Pour rappel, une déclaration explicite consiste à spécifier le type de données lors de la déclaration de la variable.
index.cs
1float number = 7.9f;
En revanche, avec la déclaration implicite, il suffit d'utiliser le mot-clé var
et le compilateur déduit automatiquement le type de la variable en fonction de la valeur assignée :
index.cs
1var number = 7.9f;
Nous pouvons également utiliser la déclaration implicite lors de la déclaration des listes :
index.cs
1var numbers = new List<int> { 1, 2, 3, 4, 5 };
1. Quelle sera la sortie du code suivant :
2. Quel module doit être importé pour utiliser les listes ?
3. Quelle méthode est utilisée pour obtenir la taille (longueur) d'une liste ?
Merci pour vos commentaires !