Sobes.tech
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
HashSet<T> Unikāla elementu kopums
Dictionary<TKey, TValue> Ātra meklēšana ar atslēgas-vērtības pāri