Diferențele dintre lista C # și Array

Clasa C # List reprezintă o listă puternic tipificată de obiecte la care poate fi accesat indexul și suportă stocarea valorilor unui tip specific, fără a se trece la sau de la un obiect.

Lista, unde parametrul T este tipul de elemente din listă. Anumite caracteristici ale listei sunt prezentate mai jos:

Adăugați valori întregi în colecția Listă:

Listă intList = Listă nouă ();

intL) ist.Add (2);

intList.Add (3);

intList.Add (4);

Adăugați valori string în colecția Listă:

Listă culori = Listă nouă ();

culori.add („roșu”);

culori.add („alb”);

culori.add („verde”);

Obțineți elemente dintr-o colecție de listă utilizând pentru buclă:

foreach (culoarea șirului în culori) (

MessageBox.Show (culoare)

)

Un tablou stochează o colecție secvențială de dimensiuni fixe de elemente de același tip. Este utilizat pentru a stoca o colecție de date, dar tabloul poate fi considerat ca o colecție de variabile de același tip stocate în locații de memorie contigua. Toate tablele constau din locații de memorie contigua, cu cea mai mică adresă corespunde primului element și cea mai înaltă adresă la ultimul element.

Declarați un tablou în C #:

datatype () typeName; // DataType este utilizat pentru a specifica tipul de elemente din tablou

Inițializarea unui tablou:

dublu () sold = dublu nou (50);

Alocarea de valori unui tablou:

dublu () sold = (23, 0, 34, 56, 44, 32);

Accesarea elementelor de matrice;

Forach (valoarea int în sold) (

Console.WriteLine („elementul este:” + valoare);

)

Creați și inițializați un tablou în același timp:

Pași Int () = int nou (6) (1, 2, 3, 4, 5, 6);

Copiați o variabilă matrice într-o altă variabilă matrice țintă:

Int () număr = pași;

atât ținta cât și sursa indică aceeași locație de memorie

Comparația dintre capete în cap între lista C # și infografica cu Array

Mai jos sunt cele mai bune 8 diferențe între C # List vs Array

Diferențele cheie între C # List și Array

Atât performanța C # List, cât și Array sunt alegeri populare pe piață; haideți să discutăm unele dintre diferențele majore dintre C # List și Array:

  1. Lista este construită în partea de sus a Array, în timp ce Array este o structură de date de nivel inferior.
  2. O listă este livrată sub formă de API-uri în C # cu un părinte ca clasă Colecție, în timp ce Array este structura de date de nivel inferior cu propriile proprietăți specifice.
  3. O listă nu este bazată pe index, bazată pe conceptul de noduri, în timp ce Array-urile sunt structuri de date bazate pe index cu adresa cea mai mică este furnizată primului element și adresa cea mai înaltă este furnizată până la ultimul element din tablou.
  4. Lista este de natură dinamică, adică dimensiunea lor crește automat odată cu inserarea mai multor elemente, în timp ce Arrayurile sunt structuri de dimensiuni fixe, odată inițializate nu pot fi resetate.
  5. Lista este mai bună pentru inserarea și ștergerea frecventă, în timp ce Arrayurile sunt mult mai potrivite pentru accesul frecvent la scenariul de elemente.
  6. Lista ocupă mult mai multă memorie, deoarece fiecare nod definit, Lista are propriul set de memorie, în timp ce Arrayurile sunt structuri de date eficiente pentru memorie.
  7. O listă este derivată din Colecția care conține mai multe tipuri de date generice, în timp ce Array este fixat și stochează un tip de date mai puternic.
  8. Lista conține noduri care au locații de memorie nu trebuie să fie de natură contiguă, în timp ce Array conține elemente cu locația lor de memorie care sunt de natură contiguă.
  9. Proprietatea non-contiguă a Listei îi face să dureze mai mult timp în accesarea elementelor, în timp ce proprietatea contiguă a Array le face extrem de eficiente pentru accesarea elementelor.
  10. Listă generici de pârghie, este practic o versiune sigură de tip ArrayList și generează o eroare de compilare în timp ce Array-uri cu tipul său sigur, extrem de eficient din punct de vedere al vitezei și performanței, acceptă dimensiuni multiple.

Comparație față în față între C # List vs Array

Mai jos este cea mai înaltă comparație între C # List vs Array

Baza de comparație între lista C # și matriceaListămulțime
CreareConstruit pe vârful ArrayStructura de date originală, bazată pe conceptul de index
MemorieOcupă mai multă memorie decât ArrayMemorie-eficiente
LungimeLungimea variazăLungimea dimensiunii fixe
folosireIntroducerea și ștergerea frecventăAcces frecvent la elemente
RedimensionareaRedimensionarea Lista este de natură dinamicăRedimensionarea tablourilor este costisitoare
StructuraMemorie non-contiguăLocația contiguă a memoriei
IndexareaStructura pe bază de indiciIndice bazat cu cea mai mică adresă ca primă și cea mai înaltă adresă ca ultimă
AccesElementul de acces necesită mult timp, deși se bazează pe o poziție a elementuluiElementul de acces este o operație de timp constantă indiferent de locația elementului

Concluzie - C # List vs Array

Ambele C # List vs Array sunt tipuri distincte, având capacități diferite și stochează datele lor în moduri separate. Aceste capacități de stocare și design al structurilor de date C # List vs Array le fac unice în propriile lor modalități. O matrice are dimensiuni fixe și, odată ce a fost alocată, nu se poate adăuga sau elimina elemente din ea, de asemenea toate elementele trebuie să fie de același tip. Astfel, este o structură liniară de siguranță și cea mai eficientă a datelor liniare în ceea ce privește viteza și performanța. De asemenea, Array acceptă dimensiuni multiple. Lista oferă mai multe funcții generice și derivate din API-urile de colectare. Spre deosebire de Array, acestea sunt de natură dinamică, se pot redimensiona automat cu introducerea și ștergerea frecventă a elementelor. Este esențial o versiune sigură de tip a unei structuri de date ArrayList. Funcția de siguranță de tip înseamnă că nu există nicio boxă sau unbox care ar îmbunătăți performanța și dacă cineva încearcă să adauge un element de tip greșit, va genera o eroare de compilare.

Performanța C # List vs Array este o structură liniară de date care se potrivește bine pentru diferite scenarii. Dacă apar frecvent inserarea și ștergerea și, în același timp, memoria nu este o constrângere, atunci List este o alegere ideală, în timp ce în scenarii precum accesul frecvent al elementelor necesare cu o restricție de memorie, Array este o opțiune mai bună. Totul depinde de cazul de utilizare și cerință. Un tablou este întotdeauna o listă în natură, dar o listă nu este un tablou. Matricea permite ambele tipuri de acces, direct și secvențial, în timp ce Lista permite acces secvențial. Și acest lucru se datorează modului în care aceste structuri de date sunt stocate în memorie. Deoarece List provine din Colecție, poate implementa diferite, una dintre aceste implementări este ArrayList, care este o clasă care implementează comportamentul Listei folosind tablouri ca structură de date. Un Array este foarte mult legat de noțiunea hardware de memorie continuă, contiguă, cu fiecare element identic ca mărime. Ambele idei de performanță C # List vs Array se aliniază destul de bine, bazate pe scenarii. La sfârșitul zilei, totul se reduce la cerință, deși partea de memorie poate fi în siguranță linia laterală în lumea de azi, deoarece memoria mare a devenit o normă.

Articol recomandat

Acesta a fost un ghid pentru diferențele de top între C # List și Array. Aici vom discuta, de asemenea, diferențele cheie C # List vs Array cu infografie și tabelul de comparație. De asemenea, puteți arunca o privire asupra următoarelor articole -

  1. Liste de Array vs. Lista Java - Diferențe de valoare
  2. Ghid uimitor pe C vs Java
  3. Java Vector și ArrayList
  4. C # vs Js - Diferențe nemaipomenite
  5. C # Array vs List: Diferențe
  6. Necesită vs import: doriți să cunoașteți avantajele
  7. C vs C #: Care sunt cele mai bune diferențe
  8. C # vs JavaScript: Care sunt caracteristicile