Differenze tra elenco C # e array

La classe Elenco C # rappresenta un elenco fortemente tipizzato di oggetti a cui è possibile accedere dall'indice e supporta la memorizzazione di valori di un tipo specifico senza il cast verso o da un oggetto.

Elenco, in cui il parametro T è il tipo di elementi nell'elenco. Alcune funzioni dell'elenco sono riportate di seguito:

Aggiungi valori interi nella raccolta Elenco:

List intList = new List ();

intL) ist.Add (2);

intList.Add (3);

intList.Add (4);

Aggiungi i valori di stringa nella raccolta Elenco:

Elenco colori = nuovo Elenco ();

colors.add ("rosso");

colors.add ("bianco");

colors.add ("verde");

Recupera elementi da una raccolta Elenco utilizzando il ciclo for:

foreach (stringa di colori a colori) (

MessageBox.Show (colore)

)

Un array memorizza una raccolta sequenziale di elementi a dimensione fissa dello stesso tipo. Viene utilizzato per archiviare una raccolta di dati, ma l'array può essere considerato come una raccolta di variabili dello stesso tipo archiviate in posizioni di memoria contigue. Tutti gli array sono costituiti da posizioni di memoria contigue, con l'indirizzo più basso corrisponde al primo elemento e l'indirizzo più alto all'ultimo elemento.

Dichiarare un array in C #:

datatype () typeName; // DataType viene utilizzato per specificare il tipo di elementi nell'array

Inizializzazione di un array:

double () balance = new double (50);

Assegnazione di valori a un array:

double () balance = (23.0, 34.56, 44.32);

Accesso agli elementi dell'array;

Foreach (valore int in equilibrio) (

Console.WriteLine ("element is:" + value);

)

Crea e inizializza un array contemporaneamente:

Int () steps = new int (6) (1, 2, 3, 4, 5, 6);

Copia una variabile di matrice in un'altra variabile di matrice di destinazione:

Int () count = steps;

sia la destinazione che la sorgente puntano alla stessa posizione di memoria

Confronto testa a testa tra elenco C # e infografica array

Di seguito sono elencate le 8 principali differenze tra C # List e Array

Differenze chiave tra elenco C # e array

Entrambe le prestazioni C # List vs Array sono scelte popolari sul mercato; parliamo di alcune delle principali differenze tra l'elenco C # e la matrice:

  1. L'elenco è basato sulla parte superiore della matrice, mentre la matrice è una struttura di dati di livello inferiore.
  2. Un elenco viene fornito sotto forma di API in C # con un genitore come classe Collection mentre Array è la struttura di dati di livello inferiore con le proprie proprietà specifiche.
  3. Un elenco non è basato sull'indice, basato sul concetto di nodi mentre gli array sono strutture di dati basate sull'indice con l'indirizzo più basso viene fornito al primo elemento e l'indirizzo più alto viene fornito all'ultimo elemento dell'array.
  4. Gli elenchi sono di natura dinamica, ovvero la loro dimensione aumenta automaticamente con un maggiore inserimento di elementi, mentre le matrici sono strutture di dimensioni fisse, una volta inizializzate non possono essere ripristinate.
  5. L'elenco è migliore per l'inserimento e l'eliminazione frequenti, mentre gli array sono molto più adatti allo scenario di accesso frequente agli elementi.
  6. Elenco occupa molta più memoria poiché ogni nodo definito ha un proprio set di memoria mentre gli array sono strutture di dati efficienti in termini di memoria.
  7. Un elenco deriva dalla raccolta che contiene un tipo di dati più generico, mentre l'array è fisso e memorizza un tipo di dati più forte.
  8. L'elenco contiene nodi che hanno posizioni di memoria non devono necessariamente essere contigui in natura, mentre Array contiene gli elementi con la loro posizione di memoria che sono contigui in natura.
  9. La proprietà non contigua di List fa sì che impieghino più tempo ad accedere agli elementi mentre la proprietà contigua di Array li rende altamente efficienti per accedere agli elementi.
  10. Elenca i generici a leva, è fondamentalmente una versione di ArrayList sicura per i tipi e genera un errore di compilazione mentre Array con la sua sicurezza dei tipi, altamente efficiente in termini di velocità e prestazioni, supporta più dimensioni.

Confronto testa a testa tra elenco C # e array

Di seguito è riportato il confronto più in alto tra l'elenco C # e la matrice

Base di confronto tra elenco C # e arrayElencoVettore
CreazioneCostruito sulla cima dell'arrayStruttura dei dati originale, basata sul concetto di indice
MemoriaOccupa più memoria di ArrayMemory-efficiente
LunghezzaLa lunghezza può variareLunghezza fissa
usoInserimento ed eliminazione frequentiAccesso frequente agli elementi
RidimensionaElenco di ridimensionamento è di natura dinamicaIl ridimensionamento delle matrici è costoso
StrutturaMemoria non contiguaPosizione di memoria contigua
indicizzazioneStruttura non indicizzataIndice basato sull'indirizzo più basso come primo e sull'indirizzo più alto come ultimo
AccessoL'elemento di accesso richiede tempo, anche se basato su una posizione dell'elementoL'elemento di accesso è un funzionamento a tempo costante indipendentemente dalla posizione dell'elemento

Conclusione - Elenco C # vs array

Sia C # List che Array sono tipi distinti, con capacità diverse e archiviano i loro dati in modi separati. Le capacità di memorizzazione e il design delle strutture di dati sia C # List sia Array le rendono uniche a modo loro. Un array ha dimensioni fisse e una volta allocato non è possibile aggiungere o rimuovere elementi da esso, inoltre tutti gli elementi devono essere dello stesso tipo. Pertanto, è una struttura di dati lineare sicura ed efficiente in termini di velocità e prestazioni. Inoltre, l'array supporta più dimensioni. L'elenco fornisce funzionalità più generiche e derivate dalle API di raccolta. A differenza di Array, sono di natura dinamica, possono ridimensionarsi automaticamente con frequenti inserimenti ed eliminazioni di elementi. È essenzialmente una versione sicura di un tipo di struttura di dati ArrayList. La funzionalità di sicurezza del tipo significa che non esiste boxing o unboxing che migliorerebbe le prestazioni e se qualcuno tenta di aggiungere un elemento del tipo sbagliato, genererà un errore di compilazione.

Elenco C # vs prestazioni dell'array è una struttura di dati lineare che ben si adatta a diversi scenari. Se si verificano frequenti inserimenti ed eliminazioni e, allo stesso tempo, la memoria non è un vincolo, allora List è la scelta ideale mentre in scenari come l'accesso frequente agli elementi richiesti con un vincolo di memoria, allora Array è un'opzione migliore. Tutto dipende dal caso d'uso e dai requisiti. Un array è sempre un elenco in natura ma un elenco non è un array. L'array consente entrambi i tipi di accesso, diretto e sequenziale mentre List consente solo l'accesso sequenziale. E questo perché il modo in cui queste strutture di dati sono archiviate in memoria. Poiché l'elenco è derivato dalla raccolta, può implementazioni diverse, una di queste implementazioni è ArrayList, che è una classe che implementa il comportamento dell'elenco utilizzando array come struttura di dati. Un array è molto legato alla nozione hardware di memoria continua e contigua, con ogni elemento di dimensioni identiche. Le idee sulle prestazioni di C # List vs Array si allineano abbastanza bene, in base a scenari. Alla fine della giornata, tutto si riduce al requisito, anche se la parte della memoria può essere al sicuro nel mondo di oggi poiché l'alta memoria è diventata una norma.

Articolo raccomandato

Questa è stata una guida alle principali differenze tra C # List e Array. Qui discutiamo anche le differenze chiave tra Elenco C # e matrice con infografica e tabella comparativa. Puoi anche dare un'occhiata ai seguenti articoli -

  1. Elenchi di array vs Elenco Java - Differenze di valore
  2. Guida straordinaria su C vs Java
  3. Java Vector and ArrayList
  4. C # vs Js - Differenze impressionanti
  5. Matrice C # vs Elenco: differenze
  6. Richiesta vs importazione: vuoi conoscere i vantaggi
  7. C vs C #: quali sono le migliori differenze
  8. C # vs JavaScript: quali sono le funzionalità

Categoria: