Recherche de site Web

Comment utiliser un dictionnaire en C#


Obtenez tous les détails importants sur la façon d’utiliser cette puissante structure de données.

Un dictionnaire est une structure de données utile qui vous permet de stocker des paires clé-valeur. Vous pouvez accéder efficacement à une valeur du dictionnaire en utilisant sa clé.

Les dictionnaires en C# prennent en charge des actions telles que la suppression d'une valeur ou l'itération sur l'ensemble des valeurs.

Qu’est-ce qu’un dictionnaire en C# ?

Un dictionnaire C# est l’une des structures de données les plus importantes que vous puissiez découvrir. C'est un peu comme la structure de données Java HashMap. Ses clés doivent être uniques, mais elles peuvent être de presque n'importe quel type. Un simple dictionnaire utilise des valeurs scalaires.

Par exemple, cet ensemble de données a l'ID d'un animal comme clé et le nom de l'animal comme valeur :

{1001, "Mia"},
{1002, "Oscar"},
{1003, "Birdie"},
{1004, "Bluey"},
{1005, "Leo"},
{1006, "Travis"}

Cette structure vous permet d'accéder aux données à l'aide de la clé particulière qui fait référence à un enregistrement. Par exemple, vous pouvez récupérer l'enregistrement avec la valeur Birdie en le référençant avec la clé de recherche 1003.

Comment créer un dictionnaire

Pour créer un dictionnaire, vous devez spécifier le type d'objet pour la clé et la valeur.

  1. Créez le dictionnaire. Dans cet exemple, la clé est un entier et la valeur de chaque enregistrement est une chaîne.

    Dictionary<int, string> pets = new Dictionary<int, string>();
  2. Vous devrez utiliser l'espace de noms System.Collections.Generic qui contient la classe Dictionary. Assurez-vous de le faire en haut de votre fichier :

    using System.Collections.Generic;
    

Comment ajouter des éléments au dictionnaire

Vous pouvez ajouter des éléments au dictionnaire pendant ou après son initialisation.

  1. Vous pouvez ajouter des éléments lors de l'initialisation du dictionnaire. Pour ce faire, ajoutez quelques valeurs entre accolades après la nouvelle instruction initiale du dictionnaire.

    Dictionary<int, string> pets = new Dictionary<int, string>()
    {
        {1001, "Mia"},
        {1002, "Oscar"},
        {1003, "Birdie"},
        {1004, "Bluey"},
        {1005, "Leo"},
        {1006, "Travis"}
    };
  2. Si vous avez déjà créé le dictionnaire, vous pouvez utiliser la méthode Add() intégrée au dictionnaire.

    pets.Add(1007, "Snowy");

Vous ne pouvez pas ajouter une valeur pour une clé qui existe déjà. Si vous essayez de le faire, vous obtiendrez une ArgumentException.

Vous ne pouvez pas utiliser une valeur null comme clé pour une entrée dans un dictionnaire. Cependant, vous pouvez stocker une valeur nulle dans un dictionnaire.

Comment ajouter des objets au dictionnaire

Si vous utilisez un style de programmation orienté objet, vous disposez probablement d'au moins une classe avec laquelle vous utilisez pour créer des objets. Supposons que vous ayez une classe qui stocke des informations sur les animaux :

Vous pouvez ajouter des objets créés à partir de cette classe à un dictionnaire.

  1. Assurez-vous de créer le dictionnaire avec le type d'objet Pet spécifié pour la valeur.

    Dictionary<int, Pet> petObjects = new Dictionary<int, Pet>();
  2. Créez votre objet animal de compagnie.

    Pet mia = new Pet(1001, "Mia", new DateTime(2010, 6, 29), 9.0,
       new DateTime(2022, 05, 02));
  3. Ajoutez le nouvel objet animal de compagnie au dictionnaire.

    petObjects.Add(1001, mia);

Comment accéder à un élément dans le dictionnaire

Vous pouvez accéder à un élément du dictionnaire à l'aide de la clé.

  1. Utilisez le nom de la variable pour le dictionnaire, suivi de la clé autour d'une paire de crochets. Cela renverra l'objet stocké dans cette partie particulière du dictionnaire.

    var pet = petObjects[1001];
    Console.WriteLine(pet.name);

Comment parcourir le dictionnaire

Vous pouvez utiliser une boucle foreach pour parcourir un dictionnaire :

  1. Utilisez un foreach pour parcourir chaque KeyValuePair dans le dictionnaire. En supposant que vous ayez appelé votre itérateur entry, vous pouvez accéder à la clé et à la valeur en utilisant entry.Key et entry.Value.

    foreach (KeyValuePair<int, Pet> entry in petObjects)
    {
        // print the key
        Console.WriteLine(entry.Key);
      
        // print the name of the object for that record
        Console.WriteLine(entry.Value.name);
    }

Comment mettre à jour un élément dans un dictionnaire

Vous pouvez mettre à jour un élément en écrasant sa valeur dans le dictionnaire.

  1. Si vous avez des types d'objets simples dans votre dictionnaire, vous pouvez écraser directement la valeur d'un enregistrement.

    pets[1001] = "Maya";
  2. Si vous avez ajouté des objets à votre dictionnaire, vous pouvez remplacer une valeur par un objet complètement nouvel.

    Pet bunny = new Pet(1001, "Bunny", new DateTime(2021, 8, 1), 3.0, new DateTime(2021, 8, 4));
    petObjects[1001] = bunny;
  3. Si vous avez un objet dans le dictionnaire, vous pouvez également mettre à jour une seule propriété. Vous pouvez écraser la valeur de la propriété directement ou utiliser un setter.

    petObjects[1001].name = "Maya";
    // OR
    petObjects[1001].setName("Maya");
    

Comment supprimer un élément dans un dictionnaire

Vous pouvez choisir de supprimer un seul élément ou tous les éléments.

  1. Pour supprimer un seul élément, utilisez la méthode Built-in Remove() du dictionnaire. Entrez la clé de l'enregistrement que vous souhaitez supprimer comme argument.

    petObjects.Remove(1002);
  2. Pour supprimer tous les éléments du dictionnaire, utilisez la méthode Clear() intégrée au dictionnaire.

    petObjects.Clear();

Structures de données en C#

Ce didacticiel explique comment créer un dictionnaire en C# et comment ajouter des éléments au dictionnaire. De plus, il explique également comment mettre à jour, supprimer et parcourir le dictionnaire.

Si vous souhaitez améliorer votre vocabulaire sur les structures de données, vous pouvez commencer à explorer des structures de données plus avancées. Quelques exemples d'entre eux incluent le tas de Fibonacci, l'arbre AVL ou l'arbre rouge noir.

Articles connexes: