ArrayList vs List en C#

Muhammad Maisam Abbas 16 febrero 2024
  1. ArrayLists en C#
  2. Listas en C#
  3. ArrayLists vs Lists en C#
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.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

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

Artículo relacionado - Csharp List