Apprenez à gérer les collections de données en utilisant le type de liste générique
Ce didacticiel vous explique comment utiliser C# de manière interactive à l’aide de votre navigateur du code C# et afficher les résultats de la compilation et de l’exécution de votre code. Il contient une série de leçons sur la création, la modification et l’exploration de collections et tableaux.
Conseil
Pour coller un extrait de code dans le mode focus, vous devez utiliser le raccourci clavier (Ctrl + v ou cmd + v).
Créer des listes
Exécutez le code suivant dans la fenêtre interactive. Sélectionnez le bouton Entrer en mode focus. Puis, tapez le bloc de code suivant dans la fenêtre interactive (remplacez <name>
par votre nom) et sélectionnez Exécuter :
var names = new List<string> { "<name>", "Ana", "Felipe" };
foreach (var name in names)
{
Console.WriteLine($"Hello {name.ToUpper()}!");
}
Si vous l’exécutez sur votre environnement, suivez plutôt les instructions de la version locale.
Vous avez créé une liste de chaînes, ajouté trois noms à cette liste et affiché les noms en majuscules. Vous utilisez des concepts que vous avez appris dans les tutoriels précédents pour lire la liste en boucle.
Le code permettant d’afficher les noms utilise la fonctionnalité d’interpolation de chaîne. Quand vous faites précéder une string
du caractère $
, vous pouvez incorporer le code C# dans la déclaration de chaîne. La chaîne réelle remplace ce code C# par la valeur qu’elle génère. Dans cet exemple, elle remplace {name.ToUpper()}
par chaque nom, converti en majuscules, car vous avez appelé la méthode String.ToUpper.
Continuons notre exploration.
Modifier le contenu de la liste
La collection que vous avez créée utilise le type List<T>. Ce type stocke les séquences d’éléments. Vous spécifiez le type des éléments entre crochets angulaires.
Un aspect important du type List<T> est qu’il peut augmenter ou diminuer, ce qui vous permet d’ajouter ou de supprimer des éléments. Vous pouvez afficher les résultats en modifiant le contenu une fois que vous l’avez affiché. Ajoutez le code suivant sous le code que vous avez déjà écrit (sous la boucle qui imprime le contenu) :
Console.WriteLine();
names.Add("Maria");
names.Add("Bill");
names.Remove("Ana");
foreach (var name in names)
{
Console.WriteLine($"Hello {name.ToUpper()}!");
}
Vous avez ajouté deux noms supplémentaires à la fin de la liste. Vous en avez également supprimé un. La sortie de ce bloc de code montre le contenu initial, puis imprime une ligne vide et le nouveau contenu.
La List<T> vous permet en outre de faire référence à des éléments individuels par index. Vous accédez aux éléments à l’aide des jetons [
et ]
. Ajoutez le code suivant sous ce que vous avez déjà écrit et effectuez un essai :
Console.WriteLine($"My name is {names[0]}.");
Console.WriteLine($"I've added {names[2]} and {names[3]} to the list.");
Vous n’êtes pas autorisé à accéder au-delà de la fin de la liste. Vous pouvez vérifier la longueur de la liste à l’aide de la propriété Count. Ajoutez-y le code suivant pour effectuer un essai :
Console.WriteLine($"The list has {names.Count} people in it");
Sélectionnez de nouveau Exécuter pour afficher les résultats. En C#, les index commencent à partir de 0, de sorte que le plus grand index valide correspond au nombre d’éléments de la liste moins un.
Trier les listes et y effectuer des recherches
Nos exemples utilisent des listes relativement petites, mais vos applications peuvent souvent générer des listes contenant beaucoup plus d’éléments, qui se comptent parfois même en milliers. Pour rechercher des éléments dans ces collections plus volumineuses, vous devez rechercher différents éléments dans la liste. La méthode IndexOf recherche un élément et retourne l’index de ce dernier. Si l’élément ne figure pas dans la liste, IndexOf
retourne -1
. Essayez-la pour observer son fonctionnement. Ajoutez le code suivant sous ce que vous avez écrit jusque-là :
var index = names.IndexOf("Felipe");
if (index != -1)
{
Console.WriteLine($"The name {names[index]} is at index {index}");
}
var notFound = names.IndexOf("Not Found");
Console.WriteLine($"When an item is not found, IndexOf returns {notFound}");
Étant donné que vous pouvez ne pas savoir si un élément figure dans la liste, vous devriez toujours vérifier l’index retourné par IndexOf. S’il s’agit de -1
, l’élément est introuvable.
Il est également possible de trier les éléments de la liste. La méthode Sort trie tous les éléments de la liste dans l’ordre normal (par ordre alphabétique dans le cas de chaînes). Ajoutez le code et exécutez-le de nouveau :
names.Sort();
foreach (var name in names)
{
Console.WriteLine($"Hello {name.ToUpper()}!");
}
Listes d’autres types
Vous avez jusqu'à présent utilisé le type string
dans les listes. Nous allons maintenant créer une List<T> en utilisant un autre type. Commençons par créer un ensemble de nombres. Supprimez le code que vous avez écrit jusqu’à présent et remplacez-le par le code suivant :
var fibonacciNumbers = new List<int> {1, 1};
Cela crée une liste d’entiers et définit les deux premiers entiers sur la valeur 1. La séquence Fibonacci, une séquence de nombres, commence par deux 1. Chaque nombre Fibonacci suivant correspond à la somme des deux nombres précédents. Ajoutez le code suivant :
var previous = fibonacciNumbers[fibonacciNumbers.Count - 1];
var previous2 = fibonacciNumbers[fibonacciNumbers.Count - 2];
fibonacciNumbers.Add(previous + previous2);
foreach(var item in fibonacciNumbers)
{
Console.WriteLine(item);
}
Cliquez sur Exécuter pour afficher les résultats.
Problème
Vérifiez si vous pouvez mettre en pratique certains des concepts appris ici et dans d’autres leçons antérieures. Approfondissez à partir de ce que vous avez créé jusqu'à présent avec les nombres de Fibonacci. Essayez d’écrire le code pour générer les 20 premiers nombres de la séquence. (Astuce, le 20ème nombre Fibonacci est 6765.)
Terminer le test
Avez-vous obtenu un résultat similaire à celui-ci ?
var fibonacciNumbers = new List<int> {1, 1};
while (fibonacciNumbers.Count < 20)
{
var previous = fibonacciNumbers[fibonacciNumbers.Count - 1];
var previous2 = fibonacciNumbers[fibonacciNumbers.Count - 2];
fibonacciNumbers.Add(previous + previous2);
}
foreach(var item in fibonacciNumbers)
{
Console.WriteLine(item);
}
À chaque itération de la boucle, vous sélectionnez les deux derniers entiers de la liste, les additionner et ajoutez la valeur obtenue à la liste. La boucle se répète jusqu'à ce que vous ayez ajouté 20 éléments à la liste.
Félicitations !
Vous avez terminé le tutoriel interactif sur les listes, qui terminait l’introduction du tutoriel interactif sur C#. Vous pouvez consulter le site .NET pour télécharger le kit SDK .NET, créer un projet sur votre ordinateur et continuer à coder. La section « Étapes suivantes » vous ramène à ces didacticiels.
Pour plus d’informations sur les collections .NET, consultez les articles suivants :
Vous avez un défi avec cette section ? Si c'est le cas, faites-nous part de vos commentaires pour que nous puissions l'améliorer.