C # -də bir lüğət və bir siyahı arasındakı fərq nədir?


cavab 1:

Bir siyahı açar dəyər cütüdür, siyahı isə çox sayda obyektlərin toplusudur

Google dərhal təklif etdiyi üçün sualınız geniş yayılmışdır. Burada yaxşı bir izahat tapa bilərsiniz.

Texniki fərqləri bir kənara qoyacağam və yalnız təcrübədə necə fərqləndikləri barədə danışacağam. Siyahı, hansı qaydada olmağınıza əhəmiyyət verməyən əşyaları saxlayan bir sahədir. Digər tərəfdən bir lüğət, bənzərsiz bir açarla birləşdirilmiş dəyərlər toplusudur. Ona açarı verin və o, qoşalaşmış dəyəri tüpürdü.

Siyahılar çox çevikdir, lakin bu rahatlıq yerüstü işləmə vaxtına başa gələ bilər. Bir LINQ sorğusundan istifadə edərək bir siyahıdakı maddələrə baxa və ümumiyyətlə yaxşı olan kiçik siyahıları axtara bilərsiniz. Lakin, bu vəzifə üçün xüsusi bir lüğət hazırlanmışdır və buna görə daha sürətli olur.


cavab 2:

Bir hiylə tərkibini bitişik yaddaşda saxlayan və seriallarla eyni asimptomatik xüsusiyyətləri təqdim edən bir seriala bənzər bir məlumat quruluşudur. Siyahı da uzanır dinamik mümkünlüyünü təmin edən əsas seriala bənzər bir funksionallıq. Hiyləgər olduğunu qeyd etmək lazımdır əlaqəli siyahı deyil, seriala bənzər bir quruluşdur (əlaqəli bir siyahı istəsəniz, LinkedList lazımdır) çağır).

Bir lüğət bir TKey'ə həvalə edərək televizorları çox səmərəli şəkildə axtarmaq, daxil etmək və silmək imkanı verən hash əsaslı assosiativ bir serialdır. İstədiyiniz dəyərlə əlaqələndirdiyiniz açardan istifadə edərək maddələrə daxil olursunuz. Sənəd vasitəsilə maddələrə daxil ola bilməzsiniz. Bundan əlavə, siyahı elementlərinin sadalanma qaydası sabit deyil və ya proqnozlaşdırıla bilməz. Məsələn, hər bir insanın özünəməxsus bir sosial təminat nömrəsi varsa və bu şəxsi müəyyən bir SSN ilə koleksiyonda tez bir zamanda tapmaq istəsəniz, Lüğətdən istifadə edə bilərsiniz istifadə etmək. Siyahıdan fərqli olaraq, kolleksiyadakı beşinci şəxsə tez bir zamanda daxil ola bilməzsiniz, ancaq həmin şəxsə daxil ola bilərsiniz. .. əgər ümumiyyətlə ... çox tez SSN kimi 123-45–6789 olan. Siyahıda (çeşidlənməyibsə) siyahıdakı hər bir şəxsin istədiyi SSN-nin olub olmadığını yoxlamaq lazımdır. Lüğətdə bunu etmək lazım deyil və bu tip sorğu üçün çox sürətlidir.