Kľúčový rozdiel - generické a negenerické zbierky v C #
Generická kolekcia je trieda, ktorá poskytuje typovú bezpečnosť bez toho, aby sa musela odvodzovať od základného typu kolekcie a implementovať členy špecifické pre daný typ. Non-generic collection je špecializovaná trieda na ukladanie a vyhľadávanie údajov, ktorá poskytuje podporu pre zásobníky, fronty, zoznamy a tabuľky hashtagov. Kľúčový rozdiel medzi všeobecnou a negenerickou kolekciou v C # je ten, že generická kolekcia je silne typovaná, zatiaľ čo negenerická kolekcia nie je silno typizovaná.
OBSAH
1. Prehľad a hlavný rozdiel
2. Čo je to generická zbierka v C #
3. Čo je to negenerická zbierka v C #
4. Podobnosti medzi generickou a negenerickou zbierkou v C #
5. Porovnanie vedľa seba - generická vs negenerická zbierka v C # v tabuľkovej forme
6. Zhrnutie
Čo je generická zbierka v C #?
Negenerické kolekcie ako ArrayList, Queue, Stack atď. Môžu ukladať prvky rôznych dátových typov. Pri získavaní položiek by mal programátor zadať obsadenie do správneho dátového typu. Inak to môže spôsobiť výnimku za behu. Na prekonanie tohto problému možno použiť triedy všeobecného zberu. Generické kolekcie ukladajú prvky interne do polí ich skutočných typov. Odliatok typu sa preto nevyžaduje. Môžu byť použité na ukladanie prvkov zadaného typu alebo typov. Niektoré triedy všeobecných zbierok sú List, Dictionary, SortedList, HashSet, Queue, Stack.
Zoznam GenericList obsahuje prvky zadaného typu. Pri pridávaní prvkov môže zoznam zodpovedajúcim spôsobom zväčšiť. Ak existuje nasledovné vyhlásenie, všetky prvky, ktoré je možné uložiť do zoznamu1, by mali byť celé čísla,
Zoznam list1 - nový Zoznam ();
Všeobecný slovník v C # je kolekcia kľúčov a hodnôt. Ak existuje nasledujúci príkaz, objekt dictionary1 môže ukladať kľúče typu int a hodnoty typu reťazca.
Slovník dictionary1 = nový slovník ();
V kolekcii Generic SortedList sa predvolene ukladajú páry kľúč a hodnota vo vzostupnom poradí podľa kľúča. Nasledujúci príklad ukladá kľúč typu int a hodnotu typu reťazca.
SortedList s0 = nový SortedList ();
Toto je niekoľko príkladov pre Generic Collection v C #. Tieto kolekcie môžu ukladať viac hodnôt zadaných typov údajov. Takže sú silne zadaní.
Čo je negenerické zhromažďovanie v C #?
Polia možno použiť na uloženie viacerých prvkov. Jednou nevýhodou je, že môže ukladať prvky rovnakého dátového typu. V C # sú triedy, ktoré možno použiť na ukladanie mnohých hodnôt alebo objektov známych ako kolekcie. Zbierky pomáhajú ukladať, aktualizovať, mazať, vyhľadávať a triediť objekty. Veľkosť zbierky sa dá dynamicky zväčšovať alebo zmenšovať.
Niektoré triedy negenerických kolekcií sú ArrayList, SortedList, Stack, Queue a HashTable. Každá trieda kolekcie implementuje rozhranie IEnumerable. Pomáha iterovať cez prvky položiek v kolekcii pomocou slučky foreach.
ArrayList je alternatívou k poľu. Ak existuje pole, ktoré dokáže uložiť 10 prvkov, nemôže uložiť 20 prvkov. Ak sa pole inicializovalo na 10 prvkov, ale obsahuje iba 5 prvkov, zvyšok sa nepoužíva. Preto je pole pevné. V zozname ArrayList je možné pridávať alebo odstraňovať prvky v závislosti od indexu. Umožňuje dynamické prideľovanie pamäte. Na triedenie prvkov vo vzostupnom poradí je možné použiť metódu triedenia.
HashTable sa používa na predstavenie kolekcie párov kľúč - hodnota. Sú usporiadané na základe hashCode kľúča. Preto má každý prvok pár kľúč - hodnota. Kľúč je možné použiť na prístup ku konkrétnemu prvku v zbierke. Hromada predstavuje posledný prístup k položkám. Fronta sa používa na prístup položiek typu first in first out. Toto sú niektoré z negenerických kolekcií podporovaných v C #. Tieto kolekcie môžu ukladať prvky rôznych typov.
Aká je podobnosť medzi generickým a negenerickým zhromažďovaním v C #?
Na ukladanie viacerých prvkov v C # je možné použiť generickú aj negenerickú kolekciu
Aký je rozdiel medzi generickým a negenerickým zhromažďovaním v C #?
Rozdielny článok v strede pred tabuľkou
Všeobecná a negenerická zbierka v C # |
|
Generická kolekcia je trieda, ktorá poskytuje typovú bezpečnosť bez toho, aby sa musela odvodzovať od základného typu kolekcie a implementovať členy špecifické pre daný typ. | Non-generic collection je špecializovaná trieda na ukladanie a vyhľadávanie údajov, ktorá poskytuje podporu pre zásobníky, fronty, zoznamy a hašovacie tabuľky. |
Menný priestor | |
Triedy generickej zbierky sú v systéme. Zbierky. Generický menný priestor. | Triedy negenerickej zbierky sú v systéme. Menný priestor zbierok. |
Typ | |
Všeobecná zbierka je silne napísaná. | Negenerická zbierka nie je napísaná silno. |
Ukladanie prvkov | |
Generické kolekcie ukladajú prvky interne do polí ich skutočných typov. | Negenerické kolekcie ukladajú prvky interne do polí objektov, aby mohli ukladať akýkoľvek typ údajov. |
Zhrnutie - generické a negenerické zbierky v C #
Tento článok pojednával o rozdieloch medzi všeobecným a negenerickým zhromažďovaním v jazyku C #. Rozdiel medzi všeobecnou a negenerickou kolekciou je ten, že generická kolekcia je silne typovaná, zatiaľ čo negenerická kolekcia nie je silno typizovaná.