Sobes.tech
Junior

Kuidas saada väärtus võtme järgi sõnastikus C#?

sobes.tech AI

Vastus AI-lt

Võib kasutada indeksitort koos võtmega või TryGetValue meetodit.

  1. Indeksator ([key]):

    • Tagastab väärtuse antud võtme järgi.
    • Viskab välja KeyNotFoundException, kui võti puudub.
    // Näide indeksatoriga
    Dictionary<string, int> vanus = new Dictionary<string, int>();
    vanus["Alice"] = 30;
    
    int AliceVanus = vanus["Alice"]; // saame väärtuse
    
    // vanus["Bob"]; // Viskab välja `KeyNotFoundException`, kui "Bob" võti puudub
    
  2. TryGetValue(rõhk, out väärtus):

    • Püüab leida väärtuse antud võtme järgi.
    • Kui võti on, tagastab true ja määrab väärtus muutujale.
    • Kui ei ole, tagastab false ja väärtus on tüübi vaikimisi väärtus.
    • Turvalisem töötada potentsiaalselt puuduvate võtmetega.
    // Näide `TryGetValue` kasutamisest
    Dictionary<string, int> vanus = new Dictionary<string, int>();
    vanus["Alice"] = 30;
    
    int AliceVanus;
    if (vanus.TryGetValue("Alice", out AliceVanus))
    {
        // Võti "Alice" on leitud, AliceVanus = 30
        // ... kasutame
    }
    
    int BobVanus;
    if (vanus.TryGetValue("Bob", out BobVanus))
    {
        // See plokk ei tööta, kuna "Bob" võti puudub
    }
    else
    {
        // Võti "Bob" puudub, BobVanus on 0 (vaikimisi)
    }
    

Samuti saab kasutada meetodit GetValueOrDefault(rõhk), mis tagastab väärtuse antud võtme järgi või vaikimisi väärtuse, kui võti puudub.

// Näide `GetValueOrDefault` kasutamisest
Dictionary<string, int> vanus = new Dictionary<string, int>();
vanus["Alice"] = 30;

int AliceVanus = vanus.GetValueOrDefault("Alice"); // 30
int BobVanus = vanus.GetValueOrDefault("Bob");     // 0 (vaikimisi)