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.
-
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 -
TryGetValue(rõhk, out väärtus):- Püüab leida väärtuse antud võtme järgi.
- Kui võti on, tagastab
trueja määrabväärtusmuutujale. - Kui ei ole, tagastab
falsejaväärtuson 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)