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 |