Sobes.tech
Junior

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

sobes.tech IA

Réponse de l'IA

Le dictionnaire (Dictionary) en C# est une collection qui stocke des paires "clé-valeur", où chaque clé est unique et utilisée pour accéder rapidement à la valeur correspondante. Il implémente les interfaces IDictionary<TKey, TValue>, ICollection<KeyValuePair<TKey, TValue>>, IEnumerable<KeyValuePair<TKey, TValue>>, IEnumerable. Il est basé sur une table de hachage.

Caractéristiques principales :

  • Non ordonné : L'ordre des éléments dans le dictionnaire n'est pas garanti et peut changer lors de l'ajout/suppression.
  • Performance : Les opérations d'ajout, de suppression et de recherche par clé ont une complexité moyenne de O(1) (en cas idéal, sans collisions de hachage) et O(n) dans le pire des cas.
  • Unicité des clés : Chaque clé doit être unique dans le dictionnaire. Tenter d'ajouter un élément avec une clé existante provoquera une exception.

Exemple d'utilisation :

// Création d'un dictionnaire
Dictionary<string, int> étudiants = new Dictionary<string, int>();

// Ajout d'éléments
étudiants.Add("Ivanov", 5);
étudiants["Petrov"] = 4; // Méthode alternative d'ajout/de mise à jour

// Vérification de la présence d'une clé
if (étudiants.ContainsKey("Ivanov"))
{
    // Récupération de la valeur par clé
    int note = étudiants["Ivanov"]; // note == 5
}

// Parcours des éléments
foreach (KeyValuePair<string, int> étudiant in étudiants)
{
    // étudiant.Key - clé, étudiant.Value - valeur
    Console.WriteLine($"{étudiant.Key}: {étudiant.Value}");
}

// Suppression d'un élément
étudiants.Remove("Petrov");

Comparaison avec d'autres collections :

Collection Objectif principal Accès par index Accès par clé Unicité des clés Ordonnancement
List<T> Séquence d'éléments Oui Non Non Oui
HashSet<T> Ensemble d'éléments uniques Non Non Oui Non
Dictionary<TKey, TValue> Paires clé-valeur pour recherche rapide Non Oui Oui Non