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> | Жылдам іздеу үшін кілт-бағалар жұбы | Жоқ | Иә | Иә | Жоқ |