Ero Geneerisen Ja Ei-geneerisen Kokoelman Välillä C

Sisällysluettelo:

Ero Geneerisen Ja Ei-geneerisen Kokoelman Välillä C
Ero Geneerisen Ja Ei-geneerisen Kokoelman Välillä C

Video: Ero Geneerisen Ja Ei-geneerisen Kokoelman Välillä C

Video: Ero Geneerisen Ja Ei-geneerisen Kokoelman Välillä C
Video: Введение в iOS, Ред Ши 2024, Saattaa
Anonim

Keskeinen ero - Yleinen vs. ei-yleinen kokoelma C #: ssä

Geneerinen kokoelma on luokka, joka tarjoaa tyyppiturvallisuuden tarvitsematta johtaa peruskokoelmatyyppiin ja työvälinekohtaisiin jäseniin. Ei-yleinen kokoelma on erikoistunut luokka tietojen tallentamiseen ja noutamiseen, joka tukee pinoja, jonoja, luetteloita ja hashtableja. Tärkein ero yleisen ja ei-yleisen kokoelman välillä C #: ssä on se, että yleinen kokoelma kirjoitetaan voimakkaasti, kun taas ei-yleistä kokoelmaa ei tyypillisesti.

SISÄLLYS

1. Yleiskatsaus ja keskeinen ero

2. Mikä on geneerinen kokoelma C #

3. Mikä on ei-geneerinen kokoelma C #

4. Yleisyyden ja ei-geneerisen kokoelman yhtäläisyydet C #

5. rinnakkain vertailu - geneerinen vs ei-yleinen kokoelma C # taulukkomuodossa

6. Yhteenveto

Mikä on yleinen kokoelma C #: ssä?

Ei-yleiset kokoelmat, kuten ArrayList, Queue, Stack jne., Voivat tallentaa erityyppisiä tietotyyppejä. Kun hankkii kohteita, ohjelmoijan tulisi kirjoittaa heittää ne oikeaan tietotyyppiin. Muuten se voi aiheuttaa ajonaikaisen poikkeuksen. Geneerisiä keräysluokkia voidaan käyttää tämän ongelman ratkaisemiseen. Geneeriset kokoelmat tallentavat elementit sisäisesti todellisen tyyppisiksi matriiseiksi. Siksi tyyppivalua ei vaadita. Niitä voidaan käyttää tietyntyyppisten tai -tyyppisten elementtien tallentamiseen. Jotkut yleiskokoelmaluokat ovat Luettelo, Sanakirja, Lajiteltu luettelo, HashSet, Jono, Pino.

Ero geneerisen ja ei-geneerisen kokoelman välillä C #: ssä
Ero geneerisen ja ei-geneerisen kokoelman välillä C #: ssä

GenericList sisältää tietyntyyppisiä elementtejä. Se voi lisätä luetteloa vastaavasti, kun lisäät elementtejä. Kun on seuraava lauseke, kaikkien listalle1 tallennettavien elementtien tulisi olla kokonaislukuja, Luetteloluettelo1 - uusi luettelo ();

Yleinen sanakirja C #: ssä on kokoelma avaimia ja arvoja. Kun on seuraava lauseke, objektisanakirja1 voi tallentaa int-tyyppiset avaimet ja merkkijonotyyppiarvot.

Sanakirja sanakirja1 = uusi sanakirja ();

Generic SortedList -kokoelma tallentaa avain- ja arvoparit oletusarvon mukaan nousevassa järjestyksessä. Alla oleva esimerkki tallentaa avaimen int-tyypin ja merkkijonotyypin arvon.

SortedList s0 = uusi LajiteltuList ();

Nämä ovat muutamia esimerkkejä yleisestä kokoelmasta C #: ssä. Nämä kokoelmat voivat tallentaa useita määritettyjen tietotyyppien arvoja. Joten ne ovat voimakkaasti kirjoitettuja.

Mikä on ei-yleinen kokoelma C #: ssä?

Taulukoita voidaan käyttää useiden elementtien tallentamiseen. Yksi haittapuoli on, että se voi tallentaa saman tyyppisiä elementtejä. C #: ssä on luokkia, joita voidaan käyttää tallentamaan monia arvoja tai esineitä, joita kutsutaan kokoelmiksi. Kokoelmat auttavat tallentamaan, päivittämään, poistamaan, hakemaan ja lajittelemaan objekteja. Kokoelman kokoa voidaan lisätä tai pienentää dynaamisesti.

Jotkut ei-yleiskokoelmaluokat ovat ArrayList, SortedList, Stack, Queue ja HashTable. Jokainen keräysluokka toteuttaa IEnumerable-käyttöliittymän. Se auttaa toistamaan kokoelman kohteiden elementit läpi foreach-silmukan.

ArrayList on vaihtoehto taulukolle. Jos on joukko, joka voi tallentaa 10 elementtiä, se ei voi tallentaa 20 elementtiä. Jos matriisi alustetaan 10 elementtiin, mutta siinä on vain 5 elementtiä, loput eivät ole käytössä. Siksi taulukko on kiinteä. ArrayList-luettelossa on mahdollista lisätä tai poistaa elementtejä hakemistosta riippuen. Se mahdollistaa dynaamisen muistin allokoinnin. Lajittelumenetelmää voidaan käyttää elementtien lajitteluun nousevassa järjestyksessä.

HashTable-taulukkoa käytetään edustamaan joukko avainarvopareja. Ne on järjestetty avaimen hashCode-koodin perusteella. Siksi jokaisella elementillä on avainarvopari. Avainta voidaan käyttää tiettyyn kokoelman elementtiin. Pino edustaa kohteiden viimeistä sisään-, ulos-pääsyä. Jonoa käytetään kohteiden ensimmäiseen ensimmäiseen ulospäin pääsyyn. Nämä ovat joitain ei-yleisiä kokoelmia, joita C # tukee. Nämä kokoelmat voivat tallentaa erityyppisiä elementtejä.

Mikä on geneerisen ja ei-geneerisen kokoelman yhtäläisyys C #: ssa?

Sekä yleistä että ei-yleistä kokoelmaa voidaan käyttää useiden elementtien tallentamiseen C #: een

Mikä on ero geneerisen ja ei-geneerisen kokoelman välillä C #: ssa?

Erilainen artikkeli keskellä taulukkoa

Yleinen vs. ei-yleinen kokoelma C #: ssä

Geneerinen kokoelma on luokka, joka tarjoaa tyyppiturvallisuuden tarvitsematta johtaa peruskokoelmatyyppiin ja työvälinekohtaisiin jäseniin. Ei-yleinen kokoelma on erikoistunut luokka tietojen tallentamiseen ja noutamiseen, joka tukee pinoja, jonoja, luetteloita ja hajautustaulukoita.
Nimitila
Generic Collection -luokat ovat järjestelmässä. Kokoelmat. Generics-nimitila. Ei-geneeriset kokoelmat -luokat ovat järjestelmässä. Kokoelmien nimitila.
Tyyppi
Yleinen kokoelma on voimakkaasti kirjoitettu. Ei-yleistä kokoelmaa ei ole kirjoitettu voimakkaasti.
Elementtien tallentaminen
Geneeriset kokoelmat tallentaa elementit sisäisesti todellisen tyyppisiksi matriiseiksi. Ei-yleiset kokoelmat tallentavat elementtejä sisäisesti objektiryhmiin, jotta ne voivat tallentaa minkä tahansa tyyppisiä tietoja.

Yhteenveto - Yleinen vs. ei-yleinen kokoelma C #: ssä

Tässä artikkelissa keskusteltiin yleisen ja ei-geneerisen kokoelman eroista C #: ssä. Ero yleisen ja ei-yleisen kokoelman välillä on se, että yleinen kokoelma kirjoitetaan voimakkaasti, kun taas ei-yleistä kokoelmaa ei tyypillisesti.

Suositeltava: