Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Mitä Sanakirjat Ovat? | Tietorakenteet ja Tiedostojen Käsittely
C# Perusteiden Jälkeen

bookMitä 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

index.cs

copy
12345678910111213141516171819202122
using 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"]); } } }
Note
Huomio

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

index.cs

copy
1234567891011121314151617181920212223242526
using 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?

question mark

Mikä moduuli täytyy tuoda, jotta sanakirjoja voi käyttää?

Select the correct answer

question mark

Mikä on oikea syntaksi sanakirjan (dictionary) luomiseen?

Select the correct answer

question mark

Mikä on seuraavan koodin tuloste?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 4

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Suggested prompts:

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

bookMitä 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

index.cs

copy
12345678910111213141516171819202122
using 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"]); } } }
Note
Huomio

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

index.cs

copy
1234567891011121314151617181920212223242526
using 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?

question mark

Mikä moduuli täytyy tuoda, jotta sanakirjoja voi käyttää?

Select the correct answer

question mark

Mikä on oikea syntaksi sanakirjan (dictionary) luomiseen?

Select the correct answer

question mark

Mikä on seuraavan koodin tuloste?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 4
some-alt