Junior
Ako získať hodnotu podľa kľúča v slovníku v C#?
sobes.tech AI
Odpoveď od AI
Môžete použiť indexátor s kľúčom alebo metódu TryGetValue.
-
Indexátor (
[kľúč]):- Vráti hodnotu pre zadaný kľúč.
- Vyhodí
KeyNotFoundException, ak kľúč neexistuje.
// Príklad použitia indexátora Dictionary<string, int> vek = new Dictionary<string, int>(); vek["Alice"] = 30; int vekAlice = vek["Alice"]; // Získa hodnotu // vek["Bob"]; // Vyhodí KeyNotFoundException, ak "Bob" neexistuje -
Metóda
TryGetValue(kľúč, out hodnota):- Pokúsi sa nájsť hodnotu pre zadaný kľúč.
- Vráti
true, ak bol kľúč nájdený, a priradí hodnotu premennejhodnota. - Vráti
false, ak kľúč nebol nájdený, ahodnotabude mať predvolenú hodnotu pre typ. - Je bezpečnejšia pri práci s potenciálne chýbajúcimi kľúčmi.
// Príklad použitia `TryGetValue` Dictionary<string, int> vek = new Dictionary<string, int>(); vek["Alice"] = 30; int vekAlice; if (vek.TryGetValue("Alice", out vekAlice)) { // Kľúč "Alice" bol nájdený, vekAlice obsahuje 30 // ... použijeme } int vekBoba; if (vek.TryGetValue("Bob", out vekBoba)) { // Tento blok sa nevykoná, pretože kľúč "Bob" neexistuje } else { // Kľúč "Bob" nebol nájdený, vekBoba bude 0 (predvolená hodnota) }
Tiež môžete použiť metódu GetValueOrDefault(kľúč) (v .NET Core 2.1+ a .NET Standard 2.1+), ktorá vráti hodnotu pre zadaný kľúč alebo predvolenú hodnotu, ak kľúč nie je nájdený.
// Príklad použitia `GetValueOrDefault`
Dictionary<string, int> vek = new Dictionary<string, int>();
vek["Alice"] = 30;
int vekAlice = vek.GetValueOrDefault("Alice"); // 30
int vekBoba = vek.GetValueOrDefault("Bob"); // 0 (predvolená hodnota)