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 |