ArrayList vs List en C#
Este tutorial discutirá las diferencias y similitudes entre ArrayLists y Lists en C#.
ArrayLists en C#
La clase ArrayList
se utiliza para declarar un ArrayList en C#. Un ArrayList
almacena referencias a objetos en ella. Esto significa que un ArrayList
puede almacenar datos de múltiples tipos de datos como enteros, cadenas, flotantes, etc., en ella. El siguiente ejemplo de código nos muestra cómo podemos inicializar un ArrayList
en C#.
ArrayList array1 = new ArrayList();
array1.Add(1);
array1.Add("Pony");
foreach (var x in array1) {
Console.WriteLine(x);
}
Producción :
1
Pony
En el código anterior, creamos la instancia de la clase ArrayList
- array1
y almacenamos diferentes valores de diferentes tipos de datos en ella.
Listas en C#
Las listas genéricas se utilizan para contener datos para un tipo de datos específico en C#. La clase List
se utiliza para declarar una lista de un tipo de datos específico en C#. Necesitamos especificar el tipo de datos de nuestra lista durante la declaración. El siguiente ejemplo de código nos muestra cómo podemos inicializar una Lista
en C#.
List<int> list1 = new List<int>();
list1.Add(1);
list1.Add(2);
foreach (var x in list1) {
Console.WriteLine(x);
}
Producción :
1
2
En el código anterior, creamos la instancia de la clase List
- list1
que contiene el tipo de datos entero y los valores enteros almacenados.
ArrayLists vs Lists en C#
La clase List
siempre debe preferirse a la clase ArrayList
debido a la sobrecarga de conversión en la clase ArrayList
. La clase List
puede salvarnos de los errores en tiempo de ejecución debidos a los diferentes tipos de datos de los elementos de la clase ArrayList
. Las listas también son muy fáciles de usar con Linq. El problema con las listas de matrices se muestra en el siguiente ejemplo de codificación.
ArrayList arrayExample = new ArrayList();
arrayExample.Add(2);
arrayExample.Add("DelftStack");
int total = 0;
foreach (int num in arrayExample) {
total += num;
}
El código anterior no dará ningún error durante la compilación cuando agreguemos el valor DelftStack
en nuestra lista de arrays. Pero nos enfrentaremos a un error de tiempo de ejecución porque queremos convertir el DelftStack
a la variable entera num
. El problema se puede evitar con el simple uso de una lista en lugar de una lista de arrays.
List<int> listExample = new List<int>();
listExample.Add(1);
listExample.Add(2);
int total = 0;
foreach (int num in listExample) {
total += num;
}
El código anterior se ejecutará perfectamente sin errores. Una lista nos daría un error en tiempo de compilación cada vez que intentemos agregar DelftStack
a nuestra lista que solo contiene valores del tipo de datos enteros.
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