Sobes.tech
Junior

Kā iegūt vērtību pēc atslēgas C# vārdnīcā?

sobes.tech AI

Atbilde no AI

Var izmantot indeksatoru ar atslēgu vai TryGetValue metodi.

  1. Indeksators ([key]):

    • Atgriež vērtību pēc norādītās atslēgas.
    • Meta KeyNotFoundException, ja atslēga nav atrasta.
    // Piemērs ar indeksatoru
    Dictionary<string, int> vecums = new Dictionary<string, int>();
    vecums["Alice"] = 30;
    
    int AliceVecums = vecums["Alice"]; // saņem vērtību
    
    // vecums["Bob"]; // Meta `KeyNotFoundException`, ja atslēga "Bob" nav
    
  2. TryGetValue(raksts, out vērtība):

    • Mēģina atrast vērtību pēc norādītās atslēgas.
    • Ja atslēga ir, atgriež true un piešķir vērtību mainīgajam vērtība.
    • Ja nav, atgriež false un vērtība būs noklusējuma vērtība tipam.
    • Drošāk strādāt ar potenciāli neesošām atslēgām.
    // Piemērs ar TryGetValue
    Dictionary<string, int> vecums = new Dictionary<string, int>();
    vecums["Alice"] = 30;
    
    int AliceVecums;
    if (vecums.TryGetValue("Alice", out AliceVecums))
    {
        // Atslēga "Alice" ir, AliceVecums = 30
        // ... izmanto
    }
    
    int BobsVecums;
    if (vecums.TryGetValue("Bob", out BobsVecums))
    {
        // Šis bloks nenotiks, jo "Bob" atslēga nav
    }
    else
    {
        // Atslēga "Bob" nav atrasta, BobsVecums būs 0 (noklusējuma)
    }
    

Tāpat var izmantot metodi GetValueOrDefault(raksts), kas atgriež vērtību pēc atslēgas vai noklusējuma vērtību, ja atslēga nav.

// Piemērs ar GetValueOrDefault
Dictionary<string, int> vecums = new Dictionary<string, int>();
vecums["Alice"] = 30;

int AliceVecums = vecums.GetValueOrDefault("Alice"); // 30
int BobsVecums = vecums.GetValueOrDefault("Bob");     // 0 (noklusējuma)