Junior
C# da lug'atda kalit bo'yicha qiymatni qanday olish mumkin?
sobes.tech AI
AIdan javob
Kalit bilan indeksator yoki TryGetValue metodidan foydalanish mumkin.
-
Indeksator (
[kalit]):- Belgilangan kalit uchun qiymatni qaytaradi.
- Agar kalit mavjud bo'lmasa,
KeyNotFoundExceptiontashlaydi.
// Indeksatordan foydalanish misoli Dictionary<string, int> yoshlar = new Dictionary<string, int>(); yoshlar["Alice"] = 30; int AliceYoshi = yoshlar["Alice"]; // Qiymatni olamiz // yoshlar["Bob"]; // "Bob" kaliti mavjud bo'lmasa, KeyNotFoundException tashlaydi -
TryGetValue(kalit, out qiymat)metodi:- Belgilangan kalit uchun qiymatni topishga harakat qiladi.
- Agar kalit topilsa,
trueqaytaradi va qiymatniqiymato'zgaruvchisiga tayinlaydi. - Agar kalit topilmasa,
falseqaytaradi vaqiymatstandart qiymatga ega bo'ladi. - Potensial ravishda mavjud bo'lmagan kalitlar bilan ishlashda xavfsizroq.
// TryGetValue dan foydalanish misoli Dictionary<string, int> yoshlar = new Dictionary<string, int>(); yoshlar["Alice"] = 30; int AliceYoshi; if (yoshlar.TryGetValue("Alice", out AliceYoshi)) { // "Alice" kaliti topildi, AliceYoshi 30 // ... foydalanamiz } int BobYoshi; if (yoshlar.TryGetValue("Bob", out BobYoshi)) { // Bu blok ishlamaydi, chunki "Bob" kaliti mavjud emas } else { // "Bob" kaliti topilmadi, BobYoshi 0 (standart qiymat) }
Shuningdek, GetValueOrDefault(kalit) metodidan foydalanish mumkin ( .NET Core 2.1+ va .NET Standard 2.1+ ), bu kalit uchun qiymatni yoki standart qiymatni qaytaradi, agar kalit topilmasa.
// GetValueOrDefault dan foydalanish misoli
Dictionary<string, int> yoshlar = new Dictionary<string, int>();
yoshlar["Alice"] = 30;
int AliceYoshi = yoshlar.GetValueOrDefault("Alice"); // 30
int BobYoshi = yoshlar.GetValueOrDefault("Bob"); // 0 (standart qiymat)