Sobes.tech
Junior

Comment obtenir la valeur par clé dans un dictionnaire en C#?

sobes.tech IA

Réponse de l'IA

On peut utiliser l'indexeur avec une clé ou la méthode TryGetValue.

  1. Indexeur ([clé]):

    • Retourne la valeur pour la clé spécifiée.
    • Lance une KeyNotFoundException si la clé n'existe pas.
    // Exemple d'utilisation de l'indexeur
    Dictionary<string, int> ages = new Dictionary<string, int>();
    ages["Alice"] = 30;
    
    int ageAlice = ages["Alice"]; // Obtient la valeur
    
    // ages["Bob"]; // Lancerait une KeyNotFoundException si la clé "Bob" n'existe pas
    
  2. Méthode TryGetValue(clé, out valeur):

    • Essaie de trouver la valeur pour la clé spécifiée.
    • Retourne true si la clé est trouvée et assigne la valeur à la variable valeur.
    • Retourne false si la clé n'est pas trouvée, et valeur aura la valeur par défaut pour le type.
    • Plus sûr lors de la gestion de clés potentiellement absentes.
    // Exemple d'utilisation de TryGetValue
    Dictionary<string, int> ages = new Dictionary<string, int>();
    ages["Alice"] = 30;
    
    int ageAlice;
    if (ages.TryGetValue("Alice", out ageAlice))
    {
        // La clé "Alice" a été trouvée, ageAlice contient 30
        // ... utiliser ageAlice
    }
    
    int ageBob;
    if (ages.TryGetValue("Bob", out ageBob))
    {
        // Ce bloc ne s'exécutera pas, car la clé "Bob" n'existe pas
    }
    else
    {
        // La clé "Bob" n'a pas été trouvée, ageBob sera 0 (valeur par défaut pour int)
    }
    

Il est également possible d'utiliser la méthode GetValueOrDefault(clé) (dans .NET Core 2.1+ et .NET Standard 2.1+), qui retourne la valeur pour la clé ou la valeur par défaut si la clé n'est pas trouvée.

// Exemple d'utilisation de GetValueOrDefault
Dictionary<string, int> ages = new Dictionary<string, int>();
ages["Alice"] = 30;

int ageAlice = ages.GetValueOrDefault("Alice"); // 30
int ageBob = ages.GetValueOrDefault("Bob");     // 0 (valeur par défaut)