ArrayList vs List in C#
Questo tutorial discuterà le differenze e le somiglianze tra ArrayLists e Lists in C#.
ArrayLists in C#
La classe ArrayList
viene utilizzata per dichiarare un ArrayList in C#. Un ArrayList
memorizza i riferimenti agli oggetti in esso. Ciò significa che un ArrayList
può memorizzare dati di più tipi di dati come intero, stringa, float, ecc. Il seguente esempio di codice ci mostra come inizializzare un ArrayList
in C#.
ArrayList array1 = new ArrayList();
array1.Add(1);
array1.Add("Pony");
foreach (var x in array1) {
Console.WriteLine(x);
}
Produzione:
1 Pony
Nel codice sopra, abbiamo creato l’istanza della classe ArrayList
- array1
e abbiamo memorizzato diversi valori di diversi tipi di dati in essa.
Elenchi in C#
Gli elenchi generici vengono usati per contenere i dati per un tipo di dati specifico in C#. La classe List
viene utilizzata per dichiarare una lista di un tipo di dati specifico in C#. Dobbiamo specificare il tipo di dati della nostra lista durante la dichiarazione. Il seguente esempio di codice ci mostra come inizializzare un List
in C#.
List<int> list1 = new List<int>();
list1.Add(1);
list1.Add(2);
foreach (var x in list1) {
Console.WriteLine(x);
}
Produzione:
1 2
Nel codice precedente, abbiamo creato l’istanza della classe List
- list1
che contiene il tipo di dati intero e i valori interi memorizzati.
ArrayLists vs elenchi in C#
La classe List
deve sempre essere preferita alla classe ArrayList
a causa del sovraccarico di casting nella classe ArrayList
. La classe List
può salvarci dagli errori di runtime riscontrati a causa dei diversi tipi di dati degli elementi della classe ArrayList
. Gli elenchi sono anche molto facili da usare con Linq. Il problema con gli elenchi di array è mostrato nel seguente esempio di codifica.
ArrayList arrayExample = new ArrayList();
arrayExample.Add(2);
arrayExample.Add("DelftStack");
int total = 0;
foreach (int num in arrayExample) {
total += num;
}
Il codice precedente non darà alcun errore durante la compilazione quando aggiungiamo il valore DelftStack
nella nostra lista di array. Ma dovremo affrontare un errore di runtime perché vogliamo lanciare il DelftStack
sulla variabile intera num
. Il problema può essere evitato con il semplice utilizzo di una lista invece di una lista di array.
List<int> listExample = new List<int>();
listExample.Add(1);
listExample.Add(2);
int total = 0;
foreach (int num in listExample) {
total += num;
}
Il codice sopra verrà eseguito perfettamente senza errori. Una lista ci darebbe un errore in fase di compilazione ogni volta che proviamo ad aggiungere DelftStack
alla nostra lista che contiene solo valori del tipo di dati intero.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn