Mis vahe on sõnastikul ja C # loendis?


Vastus 1:

Sõnastik on võtme-väärtuste paar, samas kui loend on loendamatu objektide kogum

Teie küsimus on ilmselt tavaline, kuna Google soovitas seda kohe. Siit leiate hea selgituse.

Jätan kõrvale tehnilised erinevused ja lihtsalt räägin, kuidas need praktikas erinevad. Loend on kast, kuhu saab salvestada asju, kus te ei hooli liiga palju nende järjekorrast. Sõnastik on seevastu väärtuste kogum, mis on ühendatud mingi unikaalse võtmega. Andke talle võti ja see sülitab paaritud väärtuse välja.

Loendid on väga paindlikud, kuid selline paindlikkus võib maksta üldkulude töötlemise aega. Saate loendis olevaid üksusi otsida, kasutades päringut LINQ, ja väikeste loendite jaoks, mis on tavaliselt hästi. Kuid sõnastik on spetsiaalselt selle ülesande jaoks loodud ja teeb seda PALJU kiiremini.


Vastus 2:

Loend on massiivilaadne andmestruktuur, mis salvestab selle sisu külgnevasse mällu ja pakub samu asümptomaatilisi jõudlusomadusi kui massiivid. Lisaks lisab loend dünaamilise realiseeritavuse põhilistele massiivilaadsetele funktsioonidele, mida see paljastab. Oluline on märkida, et loend ei ole lingitud loend, vaid pigem massiivilaadne struktuur (kui soovite linkida loendit, siis peate linkeerima loendi ).

Sõnaraamat on räsipõhine assotsieeruv massiiv, mis pakub väga tõhusat TV-väärtuste otsimist, sisestamist ja eemaldamist, kaardistades need TKey-ks. Elementidele pääsete juurde soovitud väärtusega seotud võtme abil, üksustele indeksi järgi juurde pääseda pole. Ka kollektsiooni elementide loetlemise järjekord pole stabiilne ega ennustatav. Näiteks kui igal inimesel on ainulaadne sotsiaalkindlustuse number ja soovite kiiresti leida leiduvast kogust selle isiku, kellel on antud SSN, siis võite kasutada sõnastikku . Erinevalt loendist ei pääse te kollektsiooni viiendale inimesele kiiresti juurde, kuid pääsete sellele inimesele juurde. .. kui üldse ... kellel on SSN-iga väga kiiresti 123–45–6789. Loendis (eeldusel, et see pole sorteeritud) peaks iga loendis olev inimene kontrollima, kas neil on soovitud SSN, sõnaraamatut ei pea seda tegema ja see on seda tüüpi päringute jaoks väga kiire.