Sanakirja on hyödyllinen tietorakenne, jonka avulla voit tallentaa avainarvopareja. Voit käyttää sanakirjan arvoa tehokkaasti sen avaimen avulla.

C#:n sanakirjat tukevat toimintoja, kuten arvon poistamista tai koko arvojoukon iterointia.

Mikä on sanakirja C#:ssa?

C#-sanakirja on yksi niistä tärkeimmät tietorakenteet voit oppia. Se on vähän kuin Java HashMap -tietorakenne. Sen avainten on oltava ainutlaatuisia, mutta ne voivat olla melkein mitä tahansa. Yksinkertainen sanakirja käyttää skalaariarvoja.

Esimerkiksi tämän tietojoukon avaimena on lemmikin tunnus ja arvona lemmikin nimi:

{1001, "Mia"},
{1002, "Oscar"},
{1003, "Birdie"},
{1004, "Bluey"},
{1005, "Leo"},
{1006, "Travis"}

Tämän rakenteen avulla voit käyttää tietoja käyttämällä tiettyä tietueeseen viittaavaa avainta. Voit esimerkiksi hakea tietueen arvolla Birdie viittaamalla siihen hakuavaimella 1003.

Sanakirjan luominen

Sanakirjan luomiseksi sinun on määritettävä objektityyppi sekä avaimelle että arvolle.

  1. Luo sanakirja. Tässä esimerkissä avain on kokonaisluku ja kunkin tietueen arvo on merkkijono.
    Sanakirja<int, merkkijono> lemmikkejä = Uusi Sanakirja<int, merkkijono>();
  2. Sinun on käytettävä Järjestelmä. Kokoelmat. Yleinen nimiavaruus, joka sisältää Sanakirja-luokan. Varmista, että teet sen tiedoston yläosassa:
    käyttämällä Järjestelmä. Kokoelmat. yleinen;

Kohteiden lisääminen sanakirjaan

Voit lisätä sanakirjaan kohteita sen alustuksen aikana tai sen jälkeen.

  1. Voit lisätä kohteita alustaessasi sanakirjaa. Voit tehdä tämän lisäämällä joitakin arvoja hakasulkeisiin alkuperäisen uuden sanakirjan jälkeen.
    Sanakirja<int, merkkijono> lemmikkejä = Uusi Sanakirja<int, merkkijono>()
    {
    {1001, "Mia"},
    {1002, "Oscar"},
    {1003, "Birdie"},
    {1004, "Bluey"},
    {1005, "Leo"},
    {1006, "Travis"}
    };
  2. Jos olet jo luonut sanakirjan, voit käyttää sanakirjan sisäänrakennettua Add()-menetelmää.
    lemmikkejä. Lisätä(1007, "Lumi");

Et voi lisätä arvoa avaimelle, joka on jo olemassa. Jos yrität tehdä niin, saat ArgumentExceptionin.

Et voi käyttää a tyhjä arvo sanakirjamerkinnän avaimeksi. Voit kuitenkin tallentaa nolla-arvon sanakirjaan.

Objektien lisääminen sanakirjaan

Jos käytät oobjektisuuntautunut ohjelmointi tyyliin, sinulla on todennäköisesti ainakin yksi luokka, jolla luot objekteja. Oletetaan, että sinulla oli luokka, joka tallensi tietoja lemmikeistä:

Voit lisätä tästä luokasta luotuja objekteja sanakirjaan.

  1. Varmista, että luot sanakirjan arvolle määritetyllä Pet-objektityypillä.
    Sanakirja<int, Lemmikkieläin> petObjects = Uusi Sanakirja<int, Lemmikki>();
  2. Luo lemmikkisi esine.
    Lemmikki mia = Uusi Lemmikki(1001, "Mia", Uusi Treffiaika(2010, 6, 29), 9.0,
    Uusi Treffiaika(2022, 05, 02));
  3. Lisää uusi lemmikkiobjekti sanakirjaan.
    lemmikkieläinten esineitä. Lisätä(1001, mia);

Kuinka käyttää sanakirjassa olevaa kohdetta

Voit käyttää sanakirjan kohdetta avaimella.

  1. Käytä sanakirjan muuttujan nimeä ja sen jälkeen näppäintä hakasulkeiden ympärillä. Tämä palauttaa kyseiseen sanakirjan osaan tallennetun objektin.
    var lemmikki = lemmikkiesineet[1001];
    Konsoli. WriteLine (lemmikkinimi);

Kuinka iteroida sanakirjan yli

Voit käyttää a jokaiselle silmukka iteroidaksesi sanakirjan yli:

  1. Käytä foreach-toimintoa toistaaksesi sanakirjan jokaisen avainarvoparin. Olettaen, että soitit iteraattorillesi sisääntulo, voit käyttää avainta ja arvoa käyttämällä sisääntulo. Avain ja sisääntulo. Arvo.
    jokaiselle (KeyValuePair<int, Lemmikkieläin> merkintä sisään lemmikkiesineet)
    {
    // tulostaa avain
    Konsoli. WriteLine (merkintä. avain);

    // tulostaa kyseisen tietueen objektin nimi
    Konsoli. WriteLine (merkintä. Arvo.nimi);
    }

Kohteen päivittäminen sanakirjassa

Voit päivittää kohteen korvaamalla sen arvon sanakirjassa.

  1. Jos sanakirjassasi on yksinkertaisia ​​objektityyppejä, voit kirjoittaa tietueen arvon suoraan päälle.
    lemmikit[1001] = "Maya";
  2. Jos olet lisännyt esineitä sanakirjaasi, voit korvata arvon täysin uudeksi objektiksi.
    Lemmikkipupu = Uusi Lemmikki(1001, "Kapu", Uusi Treffiaika(2021, 8, 1), 3.0, Uusi Treffiaika(2021, 8, 4));
    lemmikkiesineet[1001] = pupu;
  3. Jos sanakirjassa on objekti, voit päivittää myös yksittäisen ominaisuuden. Voit korvata kiinteistön arvon suoraan tai käyttää setteriä.
    lemmikkiesineet[1001].name = "Maya";
    // TAI
    lemmikkiesineet[1001].setName("Maya");

Kohteen poistaminen sanakirjasta

Voit valita, haluatko poistaa yhden kohteen tai kaikki kohteet.

  1. Jos haluat poistaa yksittäisen kohteen, käytä sanakirjan Built-in Remove() -menetelmää. Kirjoita argumentiksi poistettavan tietueen avain.
    lemmikkieläinten esineitä. Poista(1002);
  2. Jos haluat poistaa kaikki sanakirjan kohteet, käytä sanakirjan Built-in Clear() -menetelmää
    lemmikkieläinten esineitä. Asia selvä();

Tietorakenteet C#:ssa

Tämä opetusohjelma käsitteli sanakirjan luomista C#-kielellä ja kohteiden lisäämistä sanakirjaan. Lisäksi se on käsitellyt myös sanakirjan päivittämistä, poistamista ja iterointia.

Jos haluat parantaa tietorakenteen sanastoasi, voit alkaa tutkia kehittyneempiä tietorakenteita. Joitakin esimerkkejä näistä ovat Fibonacci Heap, AVL Tree tai Red Black Tree.

3 kehittynyttä tietorakennetta jokaisen ohjelmoijan tulisi tietää

Lue Seuraava

JaaTweetJaaSähköposti

Liittyvät aiheet

  • Ohjelmointi
  • Sanakirja
  • Ohjelmointi

Kirjailijasta

Sharlene von Drehnen (14 artikkelia julkaistu)

Sharlene on tekninen kirjoittaja MUO: ssa ja työskentelee myös kokopäiväisesti ohjelmistokehityksessä. Hän on koulutukseltaan tietotekniikan kandidaatti ja hänellä on aikaisempaa kokemusta laadunvarmistuksesta ja yliopistotutoroinnista. Sharlene rakastaa pelaamista ja pianon soittamista.

Lisää Sharlene Von Drehneniltä

tilaa uutiskirjeemme

Liity uutiskirjeemme saadaksesi teknisiä vinkkejä, arvosteluja, ilmaisia ​​e-kirjoja ja eksklusiivisia tarjouksia!

Klikkaa tästä tilataksesi