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.
- Luo sanakirja. Tässä esimerkissä avain on kokonaisluku ja kunkin tietueen arvo on merkkijono.
Sanakirja<int, merkkijono> lemmikkejä = Uusi Sanakirja<int, merkkijono>();
- 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.
- 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"}
}; - 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.
- Varmista, että luot sanakirjan arvolle määritetyllä Pet-objektityypillä.
Sanakirja<int, Lemmikkieläin> petObjects = Uusi Sanakirja<int, Lemmikki>();
- Luo lemmikkisi esine.
Lemmikki mia = Uusi Lemmikki(1001, "Mia", Uusi Treffiaika(2010, 6, 29), 9.0,
Uusi Treffiaika(2022, 05, 02)); - Lisää uusi lemmikkiobjekti sanakirjaan.
lemmikkieläinten esineitä. Lisätä(1001, mia);
Kuinka käyttää sanakirjassa olevaa kohdetta
Voit käyttää sanakirjan kohdetta avaimella.
- 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:
- 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.
- Jos sanakirjassasi on yksinkertaisia objektityyppejä, voit kirjoittaa tietueen arvon suoraan päälle.
lemmikit[1001] = "Maya";
- 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; - 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.
- Jos haluat poistaa yksittäisen kohteen, käytä sanakirjan Built-in Remove() -menetelmää. Kirjoita argumentiksi poistettavan tietueen avain.
lemmikkieläinten esineitä. Poista(1002);
- 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
Liittyvät aiheet
- Ohjelmointi
- Sanakirja
- Ohjelmointi
Kirjailijasta

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.
tilaa uutiskirjeemme
Liity uutiskirjeemme saadaksesi teknisiä vinkkejä, arvosteluja, ilmaisia e-kirjoja ja eksklusiivisia tarjouksia!
Klikkaa tästä tilataksesi