Junior
C# da lug'at nima?
sobes.tech AI
AIdan javob
C# tilida Dictionary — bu "kalit-qiymat" juftlarini saqlovchi to'plam bo'lib, har bir kalit unikal bo'lib, mos qiymatga tez kirish uchun ishlatiladi. IDictionary<TKey, TValue>, ICollection<KeyValuePair<TKey, TValue>>, IEnumerable<KeyValuePair<TKey, TValue>>, IEnumerable interfeyslarini amalga oshiradi. Hash jadvalga asoslangan.
Asosiy xususiyatlar:
- Tartibsiz: Lug'atdagi elementlarning tartibi kafolatlanmaydi va qo'shish/o'chirish bilan o'zgarishi mumkin.
- Ishlash tezligi: Kalit bo'yicha qo'shish, o'chirish va qidirish operatsiyalari o'rtacha O(1) murakkablikka ega (ideal holatda, hash to'qnashuvi bo'lmagan holda) va eng yomon holatda O(n).
- Kalitlarning unikaligi: Har bir kalit lug'atda unikal bo'lishi kerak. Mavjud kalit bilan element qo'shishga urinish istisno bilan tugaydi.
Foydalanish misoli:
// Lug'at yaratish
Dictionary<string, int> o'quvchilar = new Dictionary<string, int>();
// Elementlar qo'shish
o'quvchilar.Add("Ivanov", 5);
o'quvchilar["Petrov"] = 4; // Alternativ qo'shish/yangilash usuli
// Kalit mavjudligini tekshirish
if (o'quvchilar.ContainsKey("Ivanov"))
{
// Kalit bo'yicha qiymatni olish
int baho = o'quvchilar["Ivanov"]; // baho == 5
}
// Elementlarni aylanib chiqish
foreach (KeyValuePair<string, int> o'quvchi in o'quvchilar)
{
// o'quvchi.Key - kalit, o'quvchi.Value - qiymat
Console.WriteLine($"{o'quvchi.Key}: {o'quvchi.Value}");
}
// Elementni o'chirish
o'quvchilar.Remove("Petrov");
Boshqa to'plamlar bilan taqqoslash:
| To'plam | Asosiy maqsad | Indeks orqali kirish | Kalit orqali kirish | Kalitlarning unikaligi | Tartiblanganligi |
|---|---|---|---|---|---|
| List<T> | Elementlar ketma-ketligi | Ha | Yo'q | Yo'q | Ha |
| HashSet<T> | Unikal elementlar to'plami | Yo'q | Yo'q | Ha | Yo'q |
| Dictionary<TKey, TValue> | Tez qidiruv uchun kalit-qiymat juftlari | Yo'q | Ha | Ha | Yo'q |