Kuo skiriasi žodynas nuo C # sąrašo?


Atsakymas 1:

Žodynas yra raktų ir reikšmių pora, o sąrašas yra nesuskaičiuojama objektų kolekcija

Akivaizdu, kad jūsų klausimas yra įprastas, nes „Google“ iškart pasiūlė. Patikrinkite, ar nėra gero paaiškinimo.

Paliksiu nuošalyje techninius skirtumus ir tiesiog kalbėsiu apie tai, kaip jie skiriasi praktikoje. Sąrašas yra dėžutė, kurioje galite laikyti daiktus ten, kur jums per mažai rūpi jų tvarka. Kita vertus, žodynas yra vertybių, surinktų su kažkokiu unikaliu raktu, rinkinys. Duokite raktą ir jis išspjauna suporuotą vertę.

Sąrašai yra labai lankstūs, tačiau šis lankstumas gali kainuoti už papildomą apdorojimo laiką. Galite ieškoti sąrašo elementų naudodamiesi LINQ užklausa ir mažiems sąrašams, kurie paprastai yra puikūs. Bet žodynas yra specialiai sukurtas šiai užduočiai, todėl daro jį DAUG greičiau.


Atsakymas 2:

Sąrašas yra masyvas, panašus į duomenų struktūrą, kuris jo turinį saugo gretimoje atmintyje ir siūlo tas pačias asimptomines našumo charakteristikas, kurias daro masyvai. Be to, sąrašas suteikia pagrindinį į masyvą panašų funkcionalumą, kurį jis demonstruoja, dinamišką įgyvendinamumą. Svarbu atkreipti dėmesį, kad sąrašas nėra susietas sąrašas, o greičiau į masyvą panaši struktūra (jei norite susieti sąrašą, LinkedList yra jūsų apsilankymas).

Žodynas yra maišos pagrindu sudarytas asociatyvusis masyvas, užtikrinantis labai efektyvų TV verčių paiešką, įterpimą ir pašalinimą, nurodant jas į TKey. Elementams galite pasiekti naudodamiesi raktu, kurį susiejote su norima verte, negalite pasiekti elementų pagal rodyklę. Be to, tvarka, kuria išvardijami kolekcijos elementai, nėra stabili ar nuspėjama. Pvz., Jei kiekvienas asmuo turi unikalų socialinio draudimo numerį ir norite greitai rasti asmenį, jei yra, kolekcijoje, kuriam suteiktas SSN, galite naudoti žodyną . Skirtingai nuo sąrašo, jūs negalite greitai pasiekti penktojo kolekcijos asmens, bet jūs galite pasiekti šį asmenį. .. jei tokių yra ... kurių SSN labai greitai yra nuo 123 iki 45–6789. Sąraše (darant prielaidą, kad nerūšiuota) kiekvienas sąrašo asmuo turėtų būti ištirtas, norėdamas įsitikinti, ar turi norimą SSN, žodyne to nereikia daryti ir jis yra labai greitas tokio tipo užklausoms.