Junior
რა არის ლექსიკონი (Dictionary) C#-ში?
sobes.tech AI
პასუხი AI-სგან
C#-да (Dictionary) — бул коллекция, алда " ачкыч-бага" парларын сактайт, анда ар бир ачкыч уникалдуу жана тиешелүү баага тез жетүү үчүн колдонулат. IDictionary<TKey, TValue>, ICollection<KeyValuePair<TKey, TValue>>, IEnumerable<KeyValuePair<TKey, TValue>>, IEnumerable интерфейстерин ишке ашырат. Хеш-таблицага негизделген.
Негизги өзгөчөлүктөрү:
- Тәртипсиздик: Сөздүктөгү элементтердин тартиби кепилденбейт жана кошуу/жоюу учурунда өзгөрүшү мүмкүн.
- Иштөө ылдамдыгы: Кошуу, жоюу жана ачкыч боюнча издөө операциялары орточо эсеп менен O(1) күрделүүлүккө ээ (идеалдуу шартта, хеш-коллизияларсыз) жана эң жаман учурда O(n).
- Ачкычтардын уникалдуулугу: Ар бир ачкыч сөздүктө уникалдуу болушу керек. Бар ачкыч менен элемент кошуу катага алып келет.
Колдонуу мисалы:
// Сөздүк түзүү
Dictionary<string, int> students = new Dictionary<string, int>();
// Элементтерди кошуу
students.Add("Ivanov", 5);
students["Petrov"] = 4; // Альтернативдүү кошуу/жаңылоо ыкмасы
// Ачкычтын бар-жогун текшерүү
if (students.ContainsKey("Ivanov"))
{
// Ачкыч боюнча маанини алуу
int баа = students["Ivanov"]; // баа == 5
}
// Элементтерди кайталоо
foreach (KeyValuePair<string, int> student in students)
{
// student.Key — ачкыч, student.Value — мааниси
Console.WriteLine($"{student.Key}: {student.Value}");
}
// Элементти жоюу
students.Remove("Petrov");
Башка коллекциялар менен салыштыруу:
| Коллекция | Негизги максаты | Индекс боюнча жетүү | Ачкыч боюнча жетүү | Ачкычтардын уникалдуулугу | Тартиптүүлүк |
|---|---|---|---|---|---|
| List<T> | Элементтердин реттілиги | Ооба | Жок | Жок | Ооба |
| HashSet<T> | Уникалдуу элементтер жыйындысы | Жок | Жок | Ооба | Жок |
| Dictionary<TKey, TValue> | Жылдам издөө үчүн ачкыч-бага жуптары | Жок | Ооба | Ооба | Жок |