Mitä Sanakirjat Ovat?
Taulukoissa (Arrays) dataan päästään käsiksi indeksoinnin avulla (arrayName[index]
). Taulukossa jokaisella arvolla (alkiolla) on yksilöllinen indeksi, jota käytetään kyseisen arvon hakemiseen, joten voidaan sanoa, että taulukolla on indeksi-arvo-rakenne.
On olemassa samankaltainen rakenne nimeltä Dictionary (sanakirja), jossa käytetään sen sijaan avain-arvo-pareja. Siinä missä indeksi on aina kokonaisluku, avain voi olla mitä tahansa perusdatatyyppiä, mutta yleisimmin se on string
.
Seuraava kuva havainnollistaa esimerkkiä sanakirjasta, joka tallentaa eri hedelmien määrän:

Sanakirjan luominen
Sanakirja voidaan määritellä seuraavalla syntaksilla:
IDictionary<keyDataType, valueDataType> dictionaryName = new Dictionary<keyDataType, valueDataType>();
Tässä keyDataType
edustaa avaimen tietotyyppiä, kun taas valueDataType
edustaa arvojen tietotyyppiä. dictionaryName
on sanakirjan nimi.
Myös implisiittinen määrittely on sallittu:
var dictionaryName = new Dictionary<keyDataType, valueDataType>();
Datan lisääminen
Add
-metodia voidaan käyttää tietueiden lisäämiseen sanakirjaan:
dictionaryName.Add(keyName, value);
Datan hakeminen
Sanakirjan tietoja voidaan hakea avaimien avulla:
dictionaryName[keyName]
Seuraava esimerkki havainnollistaa kaikkia kolmea:
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"]); } } }
Jokaisen sanakirjan avaimen tulee olla yksilöllinen. Jos yritämme lisätä avaimen, joka on jo olemassa, kääntäjä näyttää virheen.
Sanakirjoissa Count
attribuutti näyttää tallennettujen avain-arvo-parien lukumäärän. Remove
metodi ottaa avaimen ja poistaa kyseisen avain-arvo-parin sanakirjasta. Clear
-metodi poistaa yksinkertaisesti kaikki avain-arvo-parit sanakirjasta. On hyvä koodinlukuharjoitus lukea ja ymmärtää Count
, Remove
ja Clear
-ominaisuuksien käyttö seuraavasta koodista:
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. Mikä moduuli täytyy tuoda, jotta sanakirjoja voi käyttää?
2. Mikä on oikea syntaksi sanakirjan (dictionary) luomiseen?
3. Mikä on seuraavan koodin tuloste?
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
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
Mitä Sanakirjat Ovat?
Pyyhkäise näyttääksesi valikon
Taulukoissa (Arrays) dataan päästään käsiksi indeksoinnin avulla (arrayName[index]
). Taulukossa jokaisella arvolla (alkiolla) on yksilöllinen indeksi, jota käytetään kyseisen arvon hakemiseen, joten voidaan sanoa, että taulukolla on indeksi-arvo-rakenne.
On olemassa samankaltainen rakenne nimeltä Dictionary (sanakirja), jossa käytetään sen sijaan avain-arvo-pareja. Siinä missä indeksi on aina kokonaisluku, avain voi olla mitä tahansa perusdatatyyppiä, mutta yleisimmin se on string
.
Seuraava kuva havainnollistaa esimerkkiä sanakirjasta, joka tallentaa eri hedelmien määrän:

Sanakirjan luominen
Sanakirja voidaan määritellä seuraavalla syntaksilla:
IDictionary<keyDataType, valueDataType> dictionaryName = new Dictionary<keyDataType, valueDataType>();
Tässä keyDataType
edustaa avaimen tietotyyppiä, kun taas valueDataType
edustaa arvojen tietotyyppiä. dictionaryName
on sanakirjan nimi.
Myös implisiittinen määrittely on sallittu:
var dictionaryName = new Dictionary<keyDataType, valueDataType>();
Datan lisääminen
Add
-metodia voidaan käyttää tietueiden lisäämiseen sanakirjaan:
dictionaryName.Add(keyName, value);
Datan hakeminen
Sanakirjan tietoja voidaan hakea avaimien avulla:
dictionaryName[keyName]
Seuraava esimerkki havainnollistaa kaikkia kolmea:
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"]); } } }
Jokaisen sanakirjan avaimen tulee olla yksilöllinen. Jos yritämme lisätä avaimen, joka on jo olemassa, kääntäjä näyttää virheen.
Sanakirjoissa Count
attribuutti näyttää tallennettujen avain-arvo-parien lukumäärän. Remove
metodi ottaa avaimen ja poistaa kyseisen avain-arvo-parin sanakirjasta. Clear
-metodi poistaa yksinkertaisesti kaikki avain-arvo-parit sanakirjasta. On hyvä koodinlukuharjoitus lukea ja ymmärtää Count
, Remove
ja Clear
-ominaisuuksien käyttö seuraavasta koodista:
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. Mikä moduuli täytyy tuoda, jotta sanakirjoja voi käyttää?
2. Mikä on oikea syntaksi sanakirjan (dictionary) luomiseen?
3. Mikä on seuraavan koodin tuloste?
Kiitos palautteestasi!