Hvad er ordbøger?
I arrays tilgås data via indeksering (arrayName[index]
). I en array har hver værdi (element) et unikt indeks, som bruges til at tilgå denne værdi, derfor kan vi sige, at en array har en indeks-værdi struktur.
Der findes en lignende struktur kaldet et Dictionary, hvor vi i stedet har nøgle-værdi par. Hvor et indeks altid er et heltal, kan en nøgle være af enhver grundlæggende datatype, men det er ofte en string
.
Følgende illustration viser et eksempel på et dictionary, der gemmer antallet af forskellige frugter:

Oprettelse af et Dictionary
Et dictionary kan deklareres med følgende syntaks:
IDictionary<keyDataType, valueDataType> dictionaryName = new Dictionary<keyDataType, valueDataType>();
Her repræsenterer keyDataType
datatypen for nøglen, mens valueDataType
repræsenterer datatypen for værdierne. dictionaryName
er navnet på ordbogen.
En implicit deklaration er også gyldig:
var dictionaryName = new Dictionary<keyDataType, valueDataType>();
Tilføjelse af data
Add
-metoden kan bruges til at tilføje elementer til ordbogen:
dictionaryName.Add(keyName, value);
Adgang til data
Data i ordbøger kan tilgås ved hjælp af nøglerne:
dictionaryName[keyName]
Følgende er et eksempel, der demonstrerer alle tre:
index.cs
12345678910111213141516171819202122using System; using System.Collections.Generic; namespace ConsoleApp { class Program { static void Main(string[] args) { var student = new Dictionary<string, string>(); student.Add("name", "Noah"); student.Add("country", "Netherlands"); student.Add("subject", "Computer Science"); Console.WriteLine(student["name"]); Console.WriteLine(student["country"]); Console.WriteLine(student["subject"]); } } }
Hver nøgle i et dictionary skal være unik. Hvis man forsøger at tilføje en nøgle, der allerede findes, vil compileren vise en fejl.
I ordbøger viser attributten Count
antallet af nøgle-værdi-par, der er gemt i den. Metoden Remove
tager en nøgle som parameter og fjerner det tilhørende nøgle-værdi-par fra ordbogen. Metoden Clear
fjerner blot alle nøgle-værdi-par fra en ordbog. Det vil være en god kode-læseøvelse at læse og forstå brugen af Count
, Remove
og Clear
i følgende kode:
index.cs
1234567891011121314151617181920212223242526using System; using System.Collections.Generic; namespace ConsoleApp { class Program { static void Main(string[] args) { var numbers = new Dictionary<int, string>(); numbers.Add(0, "Zero"); numbers.Add(1, "One"); numbers.Add(2, "Two"); numbers.Add(3, "Three"); numbers.Add(4, "Four"); numbers.Add(5, "Five"); Console.WriteLine(numbers.Count); // Output: 6 numbers.Remove(3); Console.WriteLine(numbers.Count); // Output: 5 numbers.Clear(); Console.WriteLine(numbers.Count); // Output: 0 } } }
1. Hvilket modul skal importeres for at bruge ordbøger?
2. Hvad er den korrekte syntaks for at oprette et dictionary?
3. Hvad vil output være for følgende kode?
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Can you explain the difference between arrays and dictionaries in more detail?
Can you show an example of creating and using a dictionary?
What are some common use cases for dictionaries?
Awesome!
Completion rate improved to 2.04
Hvad er ordbøger?
Stryg for at vise menuen
I arrays tilgås data via indeksering (arrayName[index]
). I en array har hver værdi (element) et unikt indeks, som bruges til at tilgå denne værdi, derfor kan vi sige, at en array har en indeks-værdi struktur.
Der findes en lignende struktur kaldet et Dictionary, hvor vi i stedet har nøgle-værdi par. Hvor et indeks altid er et heltal, kan en nøgle være af enhver grundlæggende datatype, men det er ofte en string
.
Følgende illustration viser et eksempel på et dictionary, der gemmer antallet af forskellige frugter:

Oprettelse af et Dictionary
Et dictionary kan deklareres med følgende syntaks:
IDictionary<keyDataType, valueDataType> dictionaryName = new Dictionary<keyDataType, valueDataType>();
Her repræsenterer keyDataType
datatypen for nøglen, mens valueDataType
repræsenterer datatypen for værdierne. dictionaryName
er navnet på ordbogen.
En implicit deklaration er også gyldig:
var dictionaryName = new Dictionary<keyDataType, valueDataType>();
Tilføjelse af data
Add
-metoden kan bruges til at tilføje elementer til ordbogen:
dictionaryName.Add(keyName, value);
Adgang til data
Data i ordbøger kan tilgås ved hjælp af nøglerne:
dictionaryName[keyName]
Følgende er et eksempel, der demonstrerer alle tre:
index.cs
12345678910111213141516171819202122using System; using System.Collections.Generic; namespace ConsoleApp { class Program { static void Main(string[] args) { var student = new Dictionary<string, string>(); student.Add("name", "Noah"); student.Add("country", "Netherlands"); student.Add("subject", "Computer Science"); Console.WriteLine(student["name"]); Console.WriteLine(student["country"]); Console.WriteLine(student["subject"]); } } }
Hver nøgle i et dictionary skal være unik. Hvis man forsøger at tilføje en nøgle, der allerede findes, vil compileren vise en fejl.
I ordbøger viser attributten Count
antallet af nøgle-værdi-par, der er gemt i den. Metoden Remove
tager en nøgle som parameter og fjerner det tilhørende nøgle-værdi-par fra ordbogen. Metoden Clear
fjerner blot alle nøgle-værdi-par fra en ordbog. Det vil være en god kode-læseøvelse at læse og forstå brugen af Count
, Remove
og Clear
i følgende kode:
index.cs
1234567891011121314151617181920212223242526using System; using System.Collections.Generic; namespace ConsoleApp { class Program { static void Main(string[] args) { var numbers = new Dictionary<int, string>(); numbers.Add(0, "Zero"); numbers.Add(1, "One"); numbers.Add(2, "Two"); numbers.Add(3, "Three"); numbers.Add(4, "Four"); numbers.Add(5, "Five"); Console.WriteLine(numbers.Count); // Output: 6 numbers.Remove(3); Console.WriteLine(numbers.Count); // Output: 5 numbers.Clear(); Console.WriteLine(numbers.Count); // Output: 0 } } }
1. Hvilket modul skal importeres for at bruge ordbøger?
2. Hvad er den korrekte syntaks for at oprette et dictionary?
3. Hvad vil output være for følgende kode?
Tak for dine kommentarer!