У чым розніца паміж слоўнікам і спісам у C #?


адказ 1:

Слоўнік - пара ключавых значэнняў, а спіс - гэта мноства калекцый аб'ектаў

Здаецца, ваша пытанне распаўсюджана, паколькі Google імгненна прапанаваў яго. Вы можаце знайсці добрае тлумачэнне тут.

Я пакіну тэхнічныя адрозненні ў баку і распавяду толькі пра тое, як яны адрозніваюцца на практыцы. Спіс - гэта поле, у якім захоўваюцца рэчы, якія вам усё роўна, у якім парадку яны знаходзяцца. Слоўнік, з іншага боку, - гэта сукупнасць значэнняў, якія спалучаюцца з унікальным ключом. Дайце яму ключ, і ён выплёўвае значэнне ў пары.

Спісы вельмі гнуткія, але гэтая гнуткасць можа каштаваць накладных выдаткаў на апрацоўку. Вы можаце шукаць элементы ў спісе пры дапамозе запыту LINQ і шукаць невялікія спісы, якія звычайна добра. Аднак слоўнік быў распрацаваны спецыяльна для гэтай задачы і таму значна хутчэй.


адказ 2:

Хітрасць гэта структура падобных на масіў дадзеных, якая захоўвае яго ўтрыманне ў непасрэднай памяці і прапануе тыя ж бессімптомныя функцыі, што і масівы. Спіс таксама пашыраецца асноўны функцыянал, падобны на масіў, які забяспечвае дынамічную выканальнасць. Важна адзначыць, што хітрасць гэта не звязаны спіс, але структура падобная на масіў (калі вы хочаце звязаны спіс, вам патрэбен LinkedList званок).

Слоўнік гэта асацыятыўны масіў на аснове хэша, які дазваляе вам вельмі эфектыўна шукаць, устаўляць і выдаляць тэлерэкламы, прысвойваючы іх TKey. Вы можаце атрымаць доступ да элементаў, выкарыстоўваючы ключ, які вы звязалі з патрэбным значэннем. Вы не можаце атрымаць доступ да элементаў праз індэкс. Акрамя таго, парадак, у якім пералічаны элементы спісу, не з'яўляецца стабільным альбо прадказальным. Напрыклад, калі ў кожнага чалавека ёсць унікальны нумар сацыяльнага страхавання, і вы хочаце хутка знайсці чалавека, калі ён ёсць, у калекцыі з пэўным SSN, вы можаце выкарыстоўваць слоўнік выкарыстанне. У адрозненне ад спісу, вы не можаце хутка атрымаць доступ да пятага чалавека ў калекцыі, але вы можаце атрымаць доступ да яго. .. калі наогул ... хто мае 123–45–6789 як SSN вельмі хутка. У спісе (калі не адсартавана) кожны чалавек у спісе павінен праверыць, ці ёсць у іх патрэбны SSN. Слоўнік гэтага не павінен рабіць і вельмі хуткі для гэтага віду запыту.