Contenu du cours
C# au-delà des Bases
C# au-delà des Bases
Qu'est-ce Que les Lists?
Imaginez que nous avons une situation où nous voulons stocker les noms de tous les étudiants qui suivent un certain cours. La première solution à laquelle nous pouvons penser est de créer un Tableau :
index
using 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 seront un gaspillage de mémoire - cela devient un problème surtout dans les grands tableaux.
Ici, nous avons besoin d'une nouvelle structure qui peut 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.
Voici la syntaxe pour déclarer une liste vide :
En utilisant cette syntaxe, nous pouvons créer une liste pour stocker les noms des étudiants :
index
using System; using System.Collections.Generic; class Program { static void Main(string[] args) { List<string> students = new List<string>(); } }
Il est important de noter que nous devons importer le module Generic
pour pouvoir utiliser les listes.
Vous devez simplement ajouter cette ligne sous using System;
pour importer le module requis.
Méthode Add()
Nous pouvons ajouter des éléments à une liste en utilisant la méthode Add
:
index
using 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
ne peut accepter 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 accessibles via l'indexation tout comme un tableau :
index
using 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()
Nous pouvons récupérer la longueur d'une liste en utilisant son attribut Count
:
index
using 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 nous ajoutons des éléments :
index
using 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
Nous pouvons également initialiser une liste avec certains éléments en utilisant la syntaxe suivante :
Par exemple :
index
using 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]); } }
Boucler à travers les listes
Boucler à travers une liste de manière similaire à la façon dont nous bouclerions à travers des tableaux
- Utilisation d'une boucle for :
index
using 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
using 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); } } }
Astuce :
Pour raccourcir la syntaxe de déclaration, nous pouvons également utiliser la déclaration implicite. Pour rappel, une déclaration explicite est lorsque nous spécifions le type de données lors de la déclaration de la variable, par exemple :
index
float number = 7.9f;
D'autre part, dans la déclaration implicite, nous pouvons simplement utiliser le mot-clé var
et le compilateur déduit automatiquement le type de données de la variable en fonction de la valeur assignée :
index
var number = 7.9f;
Nous pouvons également utiliser la déclaration implicite lors de la déclaration de listes :
Par exemple :
index
var numbers = new List<int> { 1, 2, 3, 4, 5 };
1. Quel sera le résultat 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 !