Passer au contenu du pied de page
Iron Academy Logo
Apprendre le C#
Apprendre le C#

Autres catégories

Comprendre le dictionnaire C#

Tim Corey
10m 19s

Le dictionnaire est une structure de données puissante en C# qui est souvent sous-utilisée. La classe Dictionary est une collection générique qui se trouve dans l'espace de noms System.Collections.Generic. Dans sa vidéo, "La structure de données du dictionnaire en C# en 10 minutes ou moins", Tim Corey fournit un guide concis et pratique sur la manière d'utiliser efficacement les dictionnaires dans vos applications C#. Cet article décompose les explications et les exemples de Tim, visant à vous aider à saisir l'essentiel du dictionnaire C# en toute simplicité.

Introduction aux dictionnaires

Tim commence par présenter le concept de dictionnaire en C#. Il compare ce système à un dictionnaire de la vie réelle où l'on cherche un mot (clé) pour en trouver la définition (valeur). En C#, un dictionnaire est une collection de paires clé-valeur où chaque clé est unique et ne peut être nulle.

Création d'un dictionnaire

Un dictionnaire en C# est déclaré en utilisant la syntaxe Dictionary<TKey, TValue>, permettant un stockage et une récupération efficaces des données grâce à des paires clé-valeur. Avec une capacité initiale par défaut définie lors de leur instanciation, les dictionnaires peuvent s'ajuster dynamiquement au fur et à mesure de l'ajout d'éléments.

À (0:28), Tim commence par une application console de base pour montrer comment créer un dictionnaire. Il utilise le code suivant pour initialiser un dictionnaire dont les clés sont des entiers et les valeurs des chaînes de caractères :

// Declare a dictionary with integer keys and string values
Dictionary<int, string> rookieOfTheYear = new Dictionary<int, string>();
// Declare a dictionary with integer keys and string values
Dictionary<int, string> rookieOfTheYear = new Dictionary<int, string>();

Ici, Dictionary<int, string> spécifie que les clés seront des entiers (int) et les valeurs seront des chaînes (string). La variable rookieOfTheYear est le nom de l'instance de dictionnaire. Vous pouvez également utiliser des clés de type chaîne en définissant le type de clé comme string.

Ajouter des éléments à un dictionnaire

Tim ajoute maintenant des éléments au dictionnaire à (2:08). Il montre comment utiliser la méthode Add pour ajouter des paires clé-valeur :

// Add entries to the dictionary
rookieOfTheYear.Add(2000, "Mike Miller");
rookieOfTheYear.Add(2001, "Jane Doe");
rookieOfTheYear.Add(2002, "Jane Doe");
rookieOfTheYear.Add(2003, "John Smith");
// Add entries to the dictionary
rookieOfTheYear.Add(2000, "Mike Miller");
rookieOfTheYear.Add(2001, "Jane Doe");
rookieOfTheYear.Add(2002, "Jane Doe");
rookieOfTheYear.Add(2003, "John Smith");

Dans cet exemple :

  • rookieOfTheYear.Add(2000, "Mike Miller") ajoute la clé spécifiée 2000 avec la valeur "Mike Miller".

  • De même, les clés 2001, 2002, et 2003 sont associées à "Jane Doe", "Jane Doe", et "John Smith" respectivement.

Il note que si les valeurs peuvent être répétées, les clés doivent être uniques. Toute tentative d'ajout d'une clé dupliquée entraîne une exception :

rookieOfTheYear.Add(2001, "Jane Doe"); // This will throw an exception
rookieOfTheYear.Add(2001, "Jane Doe"); // This will throw an exception

Cette exception se produit parce que la clé 2001 existe déjà dans le dictionnaire.

Accéder aux éléments du dictionnaire

Pour démontrer la récupération des valeurs, Tim utilise la ligne de code suivante à (3:45) :

// Accessing a value with a specific key
Console.WriteLine(rookieOfTheYear[2002]); // Outputs: Jane Doe
// Accessing a value with a specific key
Console.WriteLine(rookieOfTheYear[2002]); // Outputs: Jane Doe

Ici, rookieOfTheYear[2002] accède à la valeur associée à la clé 2002. Il s'agit d'un moyen très efficace de rechercher des valeurs basées sur des clés.

Comprendre le dictionnaire C#

Vérification de l'existence d'une clé

À (4:29), Tim discute de la manière de vérifier si une clé existe dans le dictionnaire en utilisant la méthode ContainsKey :

// Check if a key exists before accessing its value
if (rookieOfTheYear.ContainsKey(2002))
{
    Console.WriteLine(rookieOfTheYear[2002]);
}
// Check if a key exists before accessing its value
if (rookieOfTheYear.ContainsKey(2002))
{
    Console.WriteLine(rookieOfTheYear[2002]);
}

Dans l'exemple ci-dessus, ContainsKey(2002) vérifie si la clé 2002 existe dans le dictionnaire. Si c'est le cas, la valeur correspondante ("Jane Doe") est imprimée.

Si la clé n'existe pas, le dictionnaire ne renvoie aucun résultat, ce qui évite les erreurs dues à l'accès à des clés inexistantes.

Expansion des capacités des dictionnaires

Tim développe les capacités des dictionnaires à (5:33), en créant un exemple plus complexe avec un dictionnaire qui fait correspondre des chaînes de caractères à des listes de chaînes de caractères :

// Declare a dictionary with string keys and List<string> as values
Dictionary<string, List<string>> wishList = new();

// Add entries to the dictionary with lists as values
wishList.Add("Tim Corey", new List<string> { "Xbox", "Tesla", "Pizza" });
wishList.Add("Billy Bob", new List<string> { "PS5", "Ford", "Hoagie" });
wishList.Add("Mary Jane", new List<string> { "House", "Car", "Sub" });
// Declare a dictionary with string keys and List<string> as values
Dictionary<string, List<string>> wishList = new();

// Add entries to the dictionary with lists as values
wishList.Add("Tim Corey", new List<string> { "Xbox", "Tesla", "Pizza" });
wishList.Add("Billy Bob", new List<string> { "PS5", "Ford", "Hoagie" });
wishList.Add("Mary Jane", new List<string> { "House", "Car", "Sub" });

Ici :

  • Les clés sont des chaînes de caractères (par exemple, "Tim Corey", "Billy Bob", "Mary Jane").

  • Les valeurs sont des listes de chaînes de caractères, représentant une liste de souhaits pour chaque personne.

Itération sur un dictionnaire

À (7:24), Tim démontre comment itérer sur un dictionnaire à l'aide d'une boucle foreach :

// Iterate over each key-value pair in the dictionary
foreach (var (key, value) in wishList)
{
    Console.WriteLine($"{key}'s wish list:");
    // Iterate over each item in the list of values
    foreach (var item in value)
    {
        Console.WriteLine($"\t{item}");
    }
}
// Iterate over each key-value pair in the dictionary
foreach (var (key, value) in wishList)
{
    Console.WriteLine($"{key}'s wish list:");
    // Iterate over each item in the list of values
    foreach (var item in value)
    {
        Console.WriteLine($"\t{item}");
    }
}

Dans cet exemple :

  • foreach (var (key, value) in wishList) parcourt chaque paire clé-valeur dans le dictionnaire wishList.

  • key se réfère à la clé (par ex., "Tim Corey").

  • value se réfère à la liste des valeurs associées à cette clé.

  • La boucle interne itère sur chaque élément de la liste et l'imprime.

Cela permet d'imprimer tous les éléments en utilisant une boucle pour accéder aux éléments du dictionnaire un par un avec une clé spécifiée et sa valeur spécifiée correspondante. Voici la sortie :

Comprendre le dictionnaire C#

Accéder à des valeurs plus complexes

Tim montre également comment accéder à des valeurs plus complexes dans le dictionnaire en utilisant explicitement l'index spécifié (8:26) :

// Access the first item in the list of values for the specified key
Console.WriteLine(wishList["Tim Corey"][0]); // Outputs: Xbox
// Access the first item in the list of values for the specified key
Console.WriteLine(wishList["Tim Corey"][0]); // Outputs: Xbox

Ici, wishList["Tim Corey"] accède à la liste associée à la clé "Tim Corey", et [0] récupère le premier élément de cette liste.

Conclusion

Tim conclut (9:00) en soulignant l'importance de comprendre les dictionnaires. Il souligne que même si les dictionnaires ne sont pas utilisés fréquemment, ils sont incroyablement utiles pour les scénarios nécessitant des clés uniques et des recherches efficaces.

Les points clés à retenir

  • Création de dictionnaires: Comprendre comment initialiser les dictionnaires avec différents types de données.

  • Ajouter des éléments: Apprenez l'importance des clés uniques et comment gérer les exceptions de clés dupliquées.

  • Accéder aux valeurs: Récupérer efficacement les valeurs à l'aide de clés.

  • Vérification de l'existence des clés: Prévenir les erreurs en vérifiant l'existence des clés avant d'accéder aux valeurs.

  • Utilisation avancée: Mettre en œuvre des dictionnaires plus complexes, tels que ceux dont les valeurs sont des listes.

  • <Itération:Utilisez des boucles pour accéder à tous les éléments d'un dictionnaire et les afficher.

En suivant la vidéo de Tim Corey, vous pourrez maîtriser l'utilisation des dictionnaires en C#, améliorant ainsi votre boîte à outils de programmation pour les scénarios nécessitant une récupération et un stockage efficaces des données. Consultez la chaîne de Tim pour d'autres vidéos informatives sur le C#.

Hero Worlddot related to Comprendre le dictionnaire C#
Hero Affiliate related to Comprendre le dictionnaire C#

Gagnez plus en partageant ce que vous aimez

Vous créez du contenu pour les développeurs travaillant avec .NET, C#, Java, Python ou Node.js ? Transformez votre expertise en revenu supplémentaire !

Équipe de soutien Iron

Nous sommes en ligne 24 heures sur 24, 5 jours sur 7.
Chat
Email
Appelez-moi