Sobes.tech
Junior

Hogyan szerezhető meg az érték kulcs szerint egy szótárban C#-ban?

sobes.tech MI

Válasz az MI-től

Kulcsos indexelőt vagy a TryGetValue módszert használhatja.

  1. Indexelő ([kulcs]):

    • Visszaadja a megadott kulcshoz tartozó értéket.
    • KeyNotFoundException kivételt dob, ha a kulcs nem létezik.
    // Indexelő használatának példája
    Dictionary<string, int> életkorok = new Dictionary<string, int>();
    életkorok["Alice"] = 30;
    
    int AliceÉletkora = életkorok["Alice"]; // Az érték lekérése
    
    // életkorok["Bob"]; // KeyNotFoundException-t dob, ha "Bob" kulcs nem létezik
    
  2. TryGetValue(kulcs, out érték) metódus:

    • Megpróbálja megtalálni a megadott kulcshoz tartozó értéket.
    • Ha megtalálja, true értéket ad vissza, és az értéket az érték változóba helyezi.
    • Ha nem találja, false értéket ad vissza, és az érték alapértelmezett értéken lesz.
    • Biztonságosabb, ha potenciálisan hiányzó kulcsokkal dolgozik.
    // TryGetValue használatának példája
    Dictionary<string, int> életkorok = new Dictionary<string, int>();
    életkorok["Alice"] = 30;
    
    int AliceÉletkora;
    if (életkorok.TryGetValue("Alice", out AliceÉletkora))
    {
        // A "Alice" kulcs megtalálva, AliceÉletkora 30
        // ... használjuk
    }
    
    int BobÉletkora;
    if (életkorok.TryGetValue("Bob", out BobÉletkora))
    {
        // Ez a blokk nem fog végrehajtódni, mert a "Bob" kulcs nem létezik
    }
    else
    {
        // A "Bob" kulcs nem található, BobÉletkora 0 (alapértelmezett érték)
    }
    

Szintén használhatja a GetValueOrDefault(kulcs) metódust (a .NET Core 2.1+ és a .NET Standard 2.1+ verziókban), amely visszaadja a kulcshoz tartozó értéket vagy az alapértelmezett értéket, ha a kulcs nem található.

// `GetValueOrDefault` használatának példája
Dictionary<string, int> életkorok = new Dictionary<string, int>();
életkorok["Alice"] = 30;

int AliceÉletkora = életkorok.GetValueOrDefault("Alice"); // 30
int BobÉletkora = életkorok.GetValueOrDefault("Bob");     // 0 (alapértelmezett érték)