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.
-
Indexelő (
[kulcs]):- Visszaadja a megadott kulcshoz tartozó értéket.
KeyNotFoundExceptionkivé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 -
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ékváltozóba helyezi. - Ha nem találja,
falseértéket ad vissza, és azértékalapé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)