La définition d'une collection comporte généralement un espace réservé entre chevrons, souvent T par convention. On parle alors de type générique. Cela permet à celui qui utilise la collection de préciser le type des éléments qu'elle contient. Dans l'exemple de code ci-dessous, on instancie une liste de strings.
En C#, les listes sont des collections de valeurs primitives ou d'instances de structures ou de classes. Elles sont implémentées dans la bibliothèque de classes de base sous la forme List<T>, où T est le type des éléments de la liste. L'API met à disposition un ensemble riche de méthodes pour créer et manipuler des listes.
Les listes permettent d'ajouter et de retirer des éléments ; elles grandissent et rétrécissent au besoin.
var listOfStrings = new List<string>();
Dans cet exercice, tu vas écrire du code pour garder la trace des langages de programmation que tu veux apprendre sur Exercism.
Tu as neuf tâches, qui consistent toutes à manipuler des tableaux.
Pour garder la trace des langages que tu veux apprendre, tu vas devoir créer un nouveau tableau.
Implémente la méthode statique Languages.NewList() qui renvoie un nouveau tableau vide.
Languages.NewList()
// => empty list
Pour l'instant, tu as une feuille de papier sur laquelle figurent les langages que tu veux apprendre : C#, Clojure et Elm.
Implémente la méthode statique Languages.GetExistingLanguages() pour renvoyer ce tableau.
Languages.GetExistingLanguages();
// => {"C#", "Clojure", "Elm"}
Au fur et à mesure que tu explores Exercism et que tu découvres des langages plus intéressants, tu veux les ajouter à ton tableau.
Implémente la fonction statique Languages.AddLanguage() pour ajouter un nouveau langage à la fin de ton tableau.
Languages.AddLanguage(Languages.GetExistingLanguages(), "VBA");
// => {"C#", "Clojure", "Elm", "VBA"}
Compter les langages un par un n'est pas pratique.
Implémente la méthode statique Languages.CountLanguages() pour compter le nombre de langages de ton tableau.
Languages.CountLanguages(Languages.GetExistingLanguages())
// => 3
Implémente la méthode statique Languages.HasLanguage() pour vérifier si un langage est présent.
Languages.HasLanguage(Languages.GetExistingLanguages(), "Elm")
// => true
À un moment donné, tu te rends compte que ton tableau est en fait rangé à l'envers !
Implémente la méthode statique Languages.ReverseList() pour inverser ton tableau.
Languages.ReverseList(Languages.GetExistingLanguages())
// => {"Elm", "Clojure", "C#"}
Même si tu aimes tous les langages, C# occupe une place particulière dans ton cœur. C'est pourquoi un tableau de langages te passionne vraiment si l'une des conditions suivantes est vraie :
Implémente la méthode statique Languages.IsExciting() pour vérifier si un tableau de langages est enthousiasmant :
Languages.IsExciting(Languages.GetExistingLanguages())
// => true
Implémente la méthode statique Languages.RemoveLanguage() pour supprimer un langage donné du tableau.
Languages.RemoveLanguage(Languages.GetExistingLanguages(), "Clojure")
// => { "C#", "Elm" }
Implémente la méthode statique Languages.IsUnique() pour vérifier si l'un des langages est répété dans le tableau.
Le tableau de langages (c'est-à-dire le paramètre) est garanti non vide lorsque cette méthode est appelée, et peu importe si le tableau est modifié.
Languages.IsUnique(Languages.GetExistingLanguages())
// => true
Inscris-toi sur Exercism pour apprendre et maîtriser C# avec 62 concepts178 exercices, et un vrai mentorat humain, le tout gratuitement.