Sobes.tech
Junior

Wat is een Dictionary in C#?

sobes.tech AI

Antwoord van AI

De Dictionary in C# is een collectie die paren van "sleutel-waarde" opslaat, waarbij elke sleutel uniek is en wordt gebruikt voor snelle toegang tot de bijbehorende waarde. Het implementeert de interfaces IDictionary<TKey, TValue>, ICollection<KeyValuePair<TKey, TValue>>, IEnumerable<KeyValuePair<TKey, TValue>>, IEnumerable. Het is gebaseerd op een hash-tabel.

Belangrijkste kenmerken:

  • Ongestructureerd: De volgorde van elementen in de dictionary wordt niet gegarandeerd en kan veranderen bij toevoegen/verwijderen.
  • Prestaties: De operaties toevoegen, verwijderen en zoeken op sleutel hebben een gemiddelde complexiteit van O(1) (in het ideale geval, zonder hash-collisies) en O(n) in het slechtste geval.
  • Uniciteit van sleutels: Elke sleutel moet uniek zijn in de dictionary. Het proberen toe te voegen van een element met een bestaande sleutel leidt tot een uitzondering.

Gebruikvoorbeeld:

// Dictionary maken
Dictionary<string, int> studenten = new Dictionary<string, int>();

// Elementen toevoegen
studenten.Add("Ivanov", 5);
studenten["Petrov"] = 4; // Alternatieve manier van toevoegen/bijwerken

// Controleren of een sleutel bestaat
if (studenten.ContainsKey("Ivanov"))
{
    // Waarde opvragen via sleutel
    int cijfer = studenten["Ivanov"]; // cijfer == 5
}

// Elementen doorlopen
foreach (KeyValuePair<string, int> student in studenten)
{
    // student.Key - sleutel, student.Value - waarde
    Console.WriteLine($"{student.Key}: {student.Value}");
}

// Element verwijderen
studenten.Remove("Petrov");

Vergelijking met andere collecties:

Collectie Hoofddoel Toegang via index Toegang via sleutel Uniciteit van sleutels Ordening
List<T> Sequentie van elementen Ja Nee Nee Ja
HashSet<T> Unieke set van elementen Nee Nee Ja Nee
Dictionary<TKey, TValue> Sleutel-waarde paren voor snelle zoekopdrachten Nee Ja Ja Nee