Sobes.tech
Junior

Kas yra žodynas (Dictionary) C#?

sobes.tech AI

Atsakymas iš AI

C#-да (Dictionary) — tai kolekcija, kuri saugo poras "raktas-reikšmė", kur kiekvienas raktas yra unikalus ir naudojamas greitam prieigai prie atitinkamos reikšmės. Ji įgyvendina IDictionary<TKey, TValue>, ICollection<KeyValuePair<TKey, TValue>>, IEnumerable<KeyValuePair<TKey, TValue>>, IEnumerable sąsajas. Pagrįsta ant maišos lentelės.

Pagrindinės savybės:

  • Nesutvarkytumas: Elementų tvarka žodyne nėra garantuota ir gali keistis pridėjimo/pašalinimo metu.
  • Našumas: Pridėjimo, pašalinimo ir paieškos operacijos pagal raktą turi vidutinį sudėtingumą O(1) (idealiu atveju, be maišos kolizijų) ir O(n) blogiausiu atveju.
  • Raktų unikalumas: Kiekvienas raktas turi būti unikalus žodyne. Bandymas pridėti elementą su esamu raktu sukels išimtį.

Naudojimo pavyzdys:

// Žodyno kūrimas
Dictionary<string, int> students = new Dictionary<string, int>();

// Elementų pridėjimas
students.Add("Ivanov", 5);
students["Petrov"] = 4; // Alternatyvus būdas pridėti/atnaujinti

// Patikrinti, ar yra raktas
if (students.ContainsKey("Ivanov"))
{
    // Gauti reikšmę pagal raktą
    int pažymys = students["Ivanov"]; // pažymys == 5
}

// Elementų iteracija
foreach (KeyValuePair<string, int> student in students)
{
    // student.Key - raktas, student.Value - reikšmė
    Console.WriteLine($"{student.Key}: {student.Value}");
}

// Elemento pašalinimas
students.Remove("Petrov");

Palyginimas su kitomis kolekcijomis:

Kolekcija Pagrindinis tikslas Prieiga per indeksą Prieiga per raktą Raktų unikalumas Tvarkinga
List<T> Elementų seka Taip Ne Ne Taip
HashSet<T> Unikalus elementų rinkinys Ne Ne Taip Ne
Dictionary<TKey, TValue> Greita paieška naudojant raktą-vertę Ne Taip Taip Ne