Junior
Kas ir vārdnīca (Dictionary) C#?
sobes.tech AI
Atbilde no AI
C#-да (Dictionary) — tas kolekcija, kas glabā pārus "atslēga-vērtība", kur katra atslēga ir unikāla un tiek izmantota, lai ātri piekļūtu atbilstošajai vērtībai. Tā īsteno IDictionary<TKey, TValue>, ICollection<KeyValuePair<TKey, TValue>>, IEnumerable<KeyValuePair<TKey, TValue>>, IEnumerable saskarnes. Balstīta uz haštabulu.
Galvenās īpašības:
- Nepārkārtotība: Vārdu krājumā elementu kārtība nav garantēta un var mainīties pievienošanas/izņemšanas laikā.
- Veiktspēja: Pievienošanas, dzēšanas un meklēšanas operācijas pēc atslēgas vidēji ir O(1) sarežģītībā (ideālā gadījumā, bez haškollīzijām) un O(n) sliktākajā gadījumā.
- Atslēgu unikālitāte: Katrs atslēgs ir jābūt unikālam vārdnīcā. Mēģinājums pievienot elementu ar esošu atslēgu izraisīs izņēmumu.
Piemērs lietošanai:
// Vārdnīcas izveide
Dictionary<string, int> students = new Dictionary<string, int>();
// Elementu pievienošana
students.Add("Ivanov", 5);
students["Petrov"] = 4; // Alternatīvs veids, kā pievienot/atjaunināt
// Pārbaudīt, vai ir atslēga
if (students.ContainsKey("Ivanov"))
{
// Saņemt vērtību pēc atslēgas
int atzīme = students["Ivanov"]; // atzīme == 5
}
// Elementu iterācija
foreach (KeyValuePair<string, int> student in students)
{
// student.Key - atslēga, student.Value - vērtība
Console.WriteLine($"{student.Key}: {student.Value}");
}
// Elementa dzēšana
students.Remove("Petrov");
Salīdzinājums ar citām kolekcijām:
| Kolekcija | Galvenais mērķis | Piekļuve pēc indeksa | Piekļuve pēc atslēgas | Atslēgu unikālitāte | Kārtība |
|---|---|---|---|---|---|
| List<T> | Elementu secība | Jā | Nē | Nē | Jā |
| HashSet<T> | Unikāla elementu kopums | Nē | Nē | Jā | Nē |
| Dictionary<TKey, TValue> | Ātra meklēšana ar atslēgas-vērtības pāri | Nē | Jā | Jā | Nē |