Matrice (uno spazio dei nomi Sistema) è un tipo di dati che può essere utilizzato chiamando gli indici. durante il runtime, non si può veramente cambiare la dimensione dell'array, a meno che non si usi il metodo di copiare l'array e di eliminare quello vecchio.
In .NET, Visual Studio utilizza una classe speciale per archiviare i dati. Per questo motivo, le prestazioni sono abbastanza veloci. Questo è anche perché in un array, è necessario specificare la dimensione e, quindi, i dati vengono memorizzati uno dopo l'altro.
Esempi:
int[] myNumbers= new int[5];
myNumbers[0] = 16;
ArrayList (System.Collections namespace) è una raccolta tipo di dati. Per riempire una lista di array, si può usare il metodo .Add. Le liste di array sono molto dinamiche nel senso che quando si aggiungono e/o si rimuovono elementi da essa, la performance rimane la stessa.
La struttura interna di ArrayList è una matrice.
Esempi:
ArrayList myArray = new ArrayList();
myArray.Add(“Steph”);
string str = myArray[0];
maggior parte del tempo, ci tendono a scegliere le liste di array, piuttosto che le matrici poiché non abbiamo idea di quanto grande sta per finire. Gli array sono l'ideale quando sai quanti oggetti hai intenzione di inserire. Quando possibile, si consiglia di utilizzare gli array in quanto ciò migliora drasticamente le prestazioni.
L'array è una sequenza di dati omogenei mentre ArrayList è una sequenza di dati eterogenei. Ecco perché dobbiamo digitare tutti i dati in ArrayLists.
Gli array sono multidimensionali ma ArrayList è sempre monodimensionale.
Gli array sono fortemente tipizzati e funzionano bene come parametri. Se conosci la lunghezza della tua collezione ed è fissa, dovresti usare un array.
Le liste di array non sono digitate a mano, ogni inserimento o nuovo processo richiede un cast per tornare al tipo originale. Se hai bisogno di un metodo per fare un elenco di un tipo specifico, ArrayLists non è sufficiente perché potresti passare in un ArrayList contenente qualsiasi tipo. Le liste di array usano internamente un array ad espansione dinamica, quindi c'è anche un colpo per espandere la dimensione dell'array interno quando raggiunge la sua capacità.
@NikhilAgrawal non è un duplicato di tale argomento poiché la domanda riguarda specificamente le differenze di prestazioni, non il contesto di utilizzo. – Asik
Sospetto che ArrayList sia più lento in quanto è necessario eseguire il cast di ogni elemento dell'array durante il recupero. – Matthew