Rozdiel medzi generickými a ne-generickými zbierkami v C #

Kľúčový rozdiel - všeobecné vs Non-Generic Zbierka v C #
 

Generická zbierka je trieda, ktorá poskytuje typovú bezpečnosť bez toho, aby sa musela odvodiť od základného typu zbierky a implementovala členy špecifické pre daný typ. Ne-generická zbierka je špecializovaná trieda na ukladanie a získavanie údajov, ktorá poskytuje podporu pre stohy, fronty, zoznamy a hashtables. kľúčový rozdiel medzi všeobecnou a neštandardnou zbierkou v jazyku C # je to generická zbierka je silne napísaná, zatiaľ čo ne-generická zbierka nie je napísaná silne.

OBSAH

1. Prehľad a kľúčový rozdiel
2. Čo je generická zbierka v jazyku C #
3. Čo je ne-generická zbierka v jazyku C #
4. Podobnosti medzi všeobecnými a negenerickými zbierkami v jazyku C #
5. Porovnanie bok po boku - všeobecná verzus ne-generická zbierka v tabuľkách C #
6. Zhrnutie

Čo je generická zbierka v jazyku C #?

V neobecných kolekciách, ako sú ArrayList, Queue, Stack atď., Sa môžu ukladať prvky rôznych typov údajov. Pri získavaní položiek by ich mal programátor napísať na správny typ údajov. Inak to môže spôsobiť runtime výnimku. Na prekonanie tohto problému je možné použiť triedy generických zbierok. Generické zbierky interne ukladajú prvky do polí svojich skutočných typov. Odlievanie typu sa preto nevyžaduje. Môžu sa použiť na ukladanie prvkov zadaného typu alebo typov. Niektoré triedy generických kolekcií sú Zoznam, Slovník, SortedList, HashSet, Queue, Stack .

GenericList obsahuje prvky zadaného typu. Zoznam môže zodpovedajúcim spôsobom zväčšiť zoznam pri pridávaní prvkov. Ak existuje nasledujúci príkaz, všetky prvky, ktoré je možné uložiť do zoznamu1, by mali byť celé čísla,

Zoznam listov1 - nový zoznam ();

Generický slovník v jazyku C # je zbierka kľúčov a hodnôt. Ak existuje príkaz nasledovne, objektový slovník1 môže ukladať kľúče typu int a hodnoty typu reťazca.

Slovník slovník1 = nový slovník ();

Zbierka Generic SortedList predvolene ukladá páry kľúčov a hodnôt vo vzostupnom poradí kľúčov. V nasledujúcom príklade je uložený kľúč typu int a hodnota typu reťazca.

SortedList s0 = nový SortedList ();

Toto je niekoľko príkladov generickej zbierky v jazyku C #. Tieto kolekcie môžu ukladať viac hodnôt určených typov údajov. Sú teda pevne napísané.

Čo je ne-generická zbierka v jazyku C #?

Polia sa dajú 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é sa dajú použiť na uloženie mnohých hodnôt alebo objektov známych ako zbierky. Kolekcie pomáhajú ukladať, aktualizovať, mazať, prehľadávať a triediť objekty. Veľkosť zbierky sa môže dynamicky zväčšovať alebo zmenšovať.

Niektoré neštandardné zbierky sú ArrayList, SortedList, Stack, Queue a HashTable. Každá trieda kolekcií implementuje rozhranie IEnumerable. Pomáha iterovať cez prvky položiek v kolekcii pomocou slučky foreach.

ArrayList je alternatíva k súboru. Ak existuje pole, ktoré dokáže uložiť 10 prvkov, nemôže uložiť 20 prvkov. Ak je pole inicializované na 10 prvkov, ale uloží iba 5 prvkov, zvyšok sa nepoužíva. Preto je pole pevné. V zozname polí je možné pridávať alebo odoberať prvky v závislosti od indexu. Umožňuje dynamické prideľovanie pamäte. Metódu zoradenia je možné použiť na usporiadanie prvkov vo vzostupnom poradí.

HashTable sa používa na reprezentáciu kolekcie párov kľúčovej hodnoty. Sú usporiadané na základe kódu hash kľúča. Preto má každý prvok pár kľúč - hodnota. Kľúč možno použiť na prístup ku konkrétnemu prvku v kolekcii. Zásobník predstavuje posledný, prvý prístup k položkám. Fronta sa používa na prvý a prvý prístup k položkám. Toto sú niektoré z ne-generických zbierok podporovaných C #. Tieto zbierky môžu ukladať prvky rôznych typov.

Aká je podobnosť medzi generickými a ne-generickými zbierkami v C #?

  • Generickú aj ne-generickú kolekciu je možné použiť na ukladanie viacerých prvkov do C #.

Aký je rozdiel medzi generickými a ne-generickými zbierkami v C #?

Generické a neovšeobecné zbierky v jazyku C #

Generická zbierka je trieda, ktorá poskytuje typovú bezpečnosť bez toho, aby sa musela odvodiť od základného typu zbierky a implementovala členy špecifické pre daný typ. Ne-generická zbierka je špecializovaná trieda na ukladanie a získavanie údajov, ktorá poskytuje podporu pre stohy, fronty, zoznamy a tabuľky hash..
 namespace
Triedy generických zbierok sú v systéme. Kolekcia. Generický priestor mien. Triedy negenerických zbierok sú v systéme. Menný priestor zbierok.
typ
Generická zbierka je výrazne napísaná. Zbierka, ktorá nie je generická, nie je výrazne napísaná.
 Ukladanie prvkov
Generické zbierky interne ukladajú prvky do polí svojich skutočných typov. Ne-generické kolekcie interne ukladajú prvky do polí objektov, aby mohli ukladať akýkoľvek typ údajov.

zhrnutie - Generické vs Non-Generic Zbierka v C #

V tomto článku sa diskutuje o rozdieloch medzi generickými a ne-generickými zbierkami v jazyku C #. Rozdiel medzi všeobecnou a neštandardnou zbierkou je v tom, že generická zbierka je silne napísaná, zatiaľ čo ne-generická zbierka nie je silne napísaná.

referencie:

1. „Kedy používať generické zbierky“. Dokumenty spoločnosti Microsoft. K dispozícii tu 
2. „Generická zbierka v jazyku C #“. TutorialsTeacher.com. K dispozícii tu  
3. Zbierka „C #:“ Zbierka v jazyku C #, TutorialsTeacher.com. K dispozícii tu  
4. “C # zbierky.”, Tutorials Point, 19. marca 2018. K dispozícii tu

S láskavým dovolením:

1.'Logo C Sharp'By Microsoft, (Public Domain), prostredníctvom Commons Wikimedia