C-SHARP - 4.5 Dictionnaire
Cette vidéo aborde une notion importante de C# : les dictionnaires (Dictionary<TKey, TValue>). Moins utilisés que les listes ou les tableaux, ils sont pourtant indispensables dans certains cas. La différence majeure : un dictionnaire ne fonctionne pas avec des index, mais avec un système de clés et valeurs. Exemple : la clé « fruit » mappe vers la valeur « pêche ».
Créer et remplir un dictionnaire
On précise le type de la clé et celui de la valeur entre balises. Deux syntaxes pour ajouter des entrées :
var dic = new Dictionary<string, string>();
dic.Add("fruit", "peche"); // methode Add
dic["legume"] = "haricot"; // notation par cle
La notation avec crochets reprend visuellement celle des tableaux, mais on passe ici une clé plutôt qu'un index.
Accès, recherche et ContainsKey
Pour lire une valeur : Console.WriteLine(dic["fruit"]); affiche « peche ». Mais si l'on demande une clé absente, le programme lève une exception. Pour gérer ce cas, la méthode ContainsKey vérifie au préalable l'existence d'une clé :
Console.WriteLine("Entrer une cle :");
string search = Console.ReadLine().ToLower();
if (dic.ContainsKey(search))
{
Console.WriteLine(dic[search]);
}
else
{
Console.WriteLine("La cle que vous avez tape n'est pas presente");
}
Puissance face aux listes : accès direct vs boucle
Pour comprendre l'intérêt du dictionnaire, comparons avec une liste contenant {nom, age} pour 3 personnes. Trouver l'âge de Jibril dans une liste impose de boucler jusqu'à trouver la bonne entrée. Avec un dictionnaire, personnes["Jibril"] renvoie la valeur instantanément, sans aucun parcours.
Sur 3 entrées, la différence est négligeable. Mais imaginez une base de millions de personnes : la liste imposerait à chaque requête de parcourir potentiellement toutes les données. Le dictionnaire offre un accès direct, quasi-instantané, indépendamment de la taille des données. C'est sa vraie force.
Rappelez-vous cette règle : dès que vous manipulez de grandes quantités de données et que vous devez y faire des recherches, le dictionnaire est très probablement le bon choix — vous verrez la différence de performance sur n'importe quelle application, web, mobile ou desktop.
En résumé
Cette leçon couvre les dictionnaires en C#, une structure de données clé-valeur qui se distingue des listes par son système de clés plutôt que d'index. Elle enseigne la création de dictionnaires avec la syntaxe générique, l'ajout d'éléments par deux méthodes (Add() et crochets), la récupération de valeurs, et la gestion des cas où une clé n'existe pas. La leçon illustre la puissance des dictionnaires pour les recherches rapides de données par clé comparé aux listes.
Points clés
- Les dictionnaires utilisent des paires clé-valeur au lieu d'index numérotés comme les listes ou tableaux
- Syntaxe de création: var dictionnaire = new Dictionary<string, string>();
- Deux façons d'ajouter des éléments: la méthode .Add(clé, valeur) ou la syntaxe des crochets dictionnaire[clé] = valeur
- Pour récupérer une valeur: utiliser la syntaxe des crochets avec la clé (exemple: dictionnaire["fruits"])
- Utiliser la méthode ContainsKey(clé) pour vérifier l'existence d'une clé avant d'y accéder et éviter les exceptions
- Les dictionnaires sont particulièrement efficaces pour rechercher une valeur parmi des millions d'enregistrements par clé
Questions fréquentes
Qu'est-ce qui différencie un dictionnaire d'une liste en C#?
Les dictionnaires fonctionnent avec des clés et des valeurs au lieu d'index numérotés. Cela permet une recherche directe par clé plutôt que de devoir parcourir les éléments comme dans une liste.
Comment ajouter des éléments dans un dictionnaire?
Il existe deux méthodes: la première est d'utiliser .Add(clé, valeur), et la seconde consiste à utiliser la syntaxe des crochets dictionnaire[clé] = valeur.
Que faire si je cherche une clé qui n'existe pas dans le dictionnaire?
Une exception est levée. Pour éviter cela, il faut utiliser la méthode ContainsKey(clé) pour vérifier que la clé existe avant d'y accéder.