Erinevus geneeriliste ja mittegeneeriliste C-kollektsioonide vahel

Peamine erinevus - üldine vs Mittegeneeriline Kollektsioon C #
 

Üldine kollektsioon on klass, mis tagab tüübi ohutuse, ilma et peaks tuletama baaskollektsiooni tüübist ja rakendama tüübispetsiifilisi liikmeid. Mitte-geneeriline kogu on andmete salvestamise ja otsimise spetsialiseeritud klass, mis pakub tuge virnade, järjekordade, loendite ja räsumärkide jaoks. võtme erinevus C # geneeriliste ja mitte-geneeriliste kollektsioonide vahel on see geneeriline kollektsioon on tugevalt trükitud, samas kui geneeriline kollektsioon pole tugevalt kirjutatud.

SISU

1. Ülevaade ja peamised erinevused
2. Mis on C-kategooria geneeriline kollektsioon
3. Mis on C-grupis mitte-geneeriline kollektsioon
4. Sarnasused geneeriliste ja mitte-geneeriliste ravimite kollektsiooni vahel C #
5. Kõrvuti võrdlus - üldine vs mitte-geneeriline kollektsioon C # tabelina
6. Kokkuvõte

Mis on C-kategooria geneeriline kollektsioon?

Mitte-geneerilised kogud nagu ArrayList, Queue, Stack jne võivad salvestada eri andmetüüpide elemente. Üksuste hankimisel peaks programmeerija sisestama need õigele andmetüübile. Muu hulgas võib see põhjustada käitusaja erandi. Selle probleemi lahendamiseks saab kasutada üldisi klassiklasse. Üldkogud salvestavad elemente sisemiselt nende tegelike tüüpide massiivides. Seetõttu ei ole tüüpi casting vajalik. Neid saab kasutada määratletud tüüpi või tüüpide elementide hoidmiseks. Mõned üldkogumiklassid on nimekiri, sõnaraamat, sorteeritud loend, HashSet, järjekord, pinu .

GenericList sisaldab määratletud tüüpi elemente. Elementide lisamisel võib see nimekirja vastavalt suurendada. Kui on olemas järgmine lause, peaksid kõik elemendid, mida saab loendisse1 salvestada, olema täisarvud,

Loendiloend1 - uus loend ();

C # üldine sõnaraamat on võtmete ja väärtuste kogum. Kui on järgmine lause, saab objektide sõnastik1 salvestada int tüüpi võtmeid ja stringi tüübi väärtusi.

Sõnastiku sõnastik1 = uus sõnaraamat ();

Generic SortedList kollektsioon salvestab võtme- ja väärtuspaarid vaikimisi võtmete kasvavas järjekorras. Allpool toodud näites on salvestatud int-tüüpi võti ja stringi tüübi väärtus.

SortedList s0 = uus SortedList ();

Need on mõned näited geneeriliste ravimite kogu kohta C # -s. Need kogud võivad salvestada määratletud andmetüüpide mitu väärtust. Niisiis, nad on tugevalt kirjutatud.

Mis on C-kategooria mitte-geneeriline kollektsioon?

Massiive saab kasutada mitme elemendi salvestamiseks. Üks puudus on see, et see võib salvestada sama andmetüübi elemente. C # klassis on klassid, mida saab kasutada paljude väärtuste või objektide, mida tuntakse kogumikena, talletamiseks. Kogud aitavad objekte salvestada, värskendada, kustutada, otsida, sorteerida. Kollektsiooni suurust saab dünaamiliselt suurendada või vähendada.

Mõned mittegeneerilised kollektsiooni klassid on ArrayList, SortedList, Stack, Queue ja HashTable. Iga kollektsiooniklass rakendab liidese IEnumerable. See aitab itereeruda läbi kollektsiooni elementide, kasutades foreach silmust.

ArrayList on alternatiiv massiivile. Kui on massiiv, mis mahutab 10 elementi, ei saa see talletada 20 elementi. Kui massiivi lähtestatakse 10 elemendiks, kuid talletatakse ainult 5 elementi, siis ülejäänud ei kasutata. Seetõttu on massiiv fikseeritud. ArrayListis on võimalik elemente sõltuvalt indeksist lisada või eemaldada. See võimaldab mälu dünaamilist jaotust. Sorteerimismeetodit saab kasutada elementide sortimiseks kasvavas järjekorras.

HashTable-d kasutatakse võtmeväärtuste paaride kogumi esindamiseks. Need on korraldatud võtme hashCode alusel. Seetõttu on igal elemendil võtmeväärtuste paar. Võtit saab kasutada kogumiku kindlale elemendile juurdepääsu saamiseks. Stack tähistab viimast sisse- ja väljapääsu üksustele. Järjekorda kasutatakse üksustele juurdepääsu saamiseks kõigepealt. Need on mõned mittegeneerilistest kogudest, mida C # toetab. Nendes kollektsioonides saab hoida erinevat tüüpi elemente.

Milline on C-geneerilise ja mitte-geneerilise kogumi sarnasus??

  • Nii elementaarset kui ka mittegeneraalset kollektsiooni saab kasutada mitme elemendi salvestamiseks C #.

Mis vahe on geneeriliste ja mitte-geneeriliste ravimite kollektsioonis C #?

Üldine vs mitte-geneeriline kollektsioon C #

Üldine kollektsioon on klass, mis tagab tüübi ohutuse, ilma et peaks tuletama baaskollektsiooni tüübist ja rakendama tüübispetsiifilisi liikmeid. Mittegeneeriline kogu on andmete salvestamise ja otsimise spetsialiseeritud klass, mis pakub tuge korstnatele, järjekordadele, loenditele ja räsitabelitele.
 Nimeruum
Geneeriliste kollektsioonide klassid on süsteemis. Kogud. Geneerikute nimeruum. Mittegeneersed kollektsiooni klassid on süsteemis. Kollektsioonide nimeruum.
Tüüp
Üldine kollektsioon on tugevalt kirjutatud. Muu kui üldine kollektsioon pole tugevalt kirjutatud.
 Elementide hoidmine
Üldkogud salvestavad elemente sisemiselt nende tegelike tüüpide massiivides. Mittegeneerilised kogud salvestavad elemente sisemiselt objektimassiividesse, nii et see võib salvestada mis tahes tüüpi andmeid.

Kokkuvõte - Üldine vs Mittegeneeriline Kollektsioon C #

Selles artiklis käsitleti erinevust geneeriliste ja mitte-geneeriliste ravimite kollektsioonis C # vahel. Erinevus geneeriliste ja geneeriliste ravimite vahel on see, et geneerilisi kollektsioone on tugevalt trükitud, samas kui geneerilisi kollektsioone pole tugevalt trükitud.

Viide:

1. “Millal geneerilisi kollektsioone kasutada?” Microsofti dokumendid. Saadaval siin 
2. “Üldine kollektsioon C #-s”. TutorialsTeacher.com. Saadaval siin  
3. C-kollektsioon: C-kollektsioon, TutorialsTeacher.com. Saadaval siin  
4. “C # kogud.”, Juhendmaterjalide punkt, 19. märts 2018. Saadaval siin

Pilt viisakalt:

1.'Logo C Sharp'By Microsoft, (üldkasutatav) Commonsi Wikimedia kaudu