Sobes.tech
Junior

Mis on sõnastik (Dictionary) C#-s?

sobes.tech AI

Vastus AI-lt

C#-да (Dictionary) — see kogumik, mis salvestab paare "võti-väärtus", kus iga võti on unikaalne ja kasutatakse kiireks juurdepääsuks vastavale väärtusele. Rakendab IDictionary<TKey, TValue>, ICollection<KeyValuePair<TKey, TValue>>, IEnumerable<KeyValuePair<TKey, TValue>>, IEnumerable liideseid. Põhineb hash-tabelil.

Peamised omadused:

  • Mittekorrastatus: Sõnastikus olevate elementide järjekord ei ole garanteeritud ja võib muutuda lisamise/kustutamise ajal.
  • Tõhusus: Lisamise, kustutamise ja otsingu operatsioonid võtme järgi on keskmiselt O(1) keerukusega (ideaalne olukord, ilma hash-kollisioonideta) ning halvim juhul O(n).
  • Võtmete unikaalsus: Iga võti peab olema sõnastikus unikaalne. Katse lisada element juba olemasoleva võtmega põhjustab erandi.

Kasutusnäide:

// Sõnastiku loomine
Dictionary<string, int> students = new Dictionary<string, int>();

// Elementide lisamine
students.Add("Ivanov", 5);
students["Petrov"] = 4; // Alternatiivne viis lisamiseks/uuendamiseks

// Kontroll, kas võti on olemas
if (students.ContainsKey("Ivanov"))
{
    // Väärtuse saamine võtmisega
    int hinne = students["Ivanov"]; // hinne == 5
}

// Elementide läbikäimine
foreach (KeyValuePair<string, int> student in students)
{
    // student.Key - võti, student.Value - väärtus
    Console.WriteLine($"{student.Key}: {student.Value}");
}

// Elementi eemaldamine
students.Remove("Petrov");

Võrdlus teiste kogumitega:

Kogum Peamine eesmärk Juurdepääs indeksiga Juurdepääs võtmega Võtmete unikaalsus Järjepidevus
List<T> Elementide järjepidevus Jah Ei Ei Jah
HashSet<T> Unikaalsete elementide kogum Ei Ei Jah Ei
Dictionary<TKey, TValue> Kiire otsing võtme- ja väärtuspaariga Ei Jah Jah Ei