ArrayList vs List em C#

Muhammad Maisam Abbas 16 fevereiro 2024
  1. ArrayLists em C#
  2. Listas em C#
  3. ArrayLists vs Lists em C#
ArrayList vs List em C#

Este tutorial discutirá as diferenças e semelhanças entre ArrayLists e Lists em C#.

ArrayLists em C#

A classe ArrayList é usada para declarar uma ArrayList em C#. Um ArrayList armazena referências de objeto nele. Isso significa que um ArrayList pode armazenar dados de vários tipos de dados, como inteiro, string, float, etc., nele. O exemplo de código a seguir nos mostra como podemos inicializar um ArrayList em C#.

ArrayList array1 = new ArrayList();
array1.Add(1);
array1.Add("Pony");
foreach (var x in array1) {
  Console.WriteLine(x);
}

Resultado:

1 Pony

No código acima, criamos a instância da classe ArrayList - array1 e armazenamos nela diferentes valores de diferentes tipos de dados.

Listas em C#

As listas genéricas são usadas para armazenar dados para um tipo de dados específico em C#. A classe List é usada para declarar uma lista de um tipo de dados específico em C#. Precisamos especificar o tipo de dados de nossa lista durante a declaração. O exemplo de código a seguir nos mostra como podemos inicializar uma Lista em C#.

List<int> list1 = new List<int>();
list1.Add(1);
list1.Add(2);
foreach (var x in list1) {
  Console.WriteLine(x);
}

Resultado:

1 2

No código acima, criamos a instância da classe List - list1 que contém o tipo de dados inteiro e os valores inteiros armazenados.

ArrayLists vs Lists em C#

A classe List deve sempre ter preferência sobre a classe ArrayList por causa da sobrecarga de conversão na classe ArrayList. A classe List pode nos salvar de erros de tempo de execução enfrentados devido aos diferentes tipos de dados dos elementos da classe ArrayList. As listas também são muito fáceis de usar com o Linq. O problema com as listas de arrayes é mostrado no seguinte exemplo de codificação.

ArrayList arrayExample = new ArrayList();
arrayExample.Add(2);
arrayExample.Add("DelftStack");
int total = 0;
foreach (int num in arrayExample) {
  total += num;
}

O código acima não dará nenhum erro durante a compilação, quando adicionamos o valor DelftStack em nossa lista de array. Mas enfrentaremos um erro de tempo de execução porque queremos lançar o DelftStack para a variável inteira num. O problema pode ser evitado com o simples uso de uma lista em vez de uma lista de array.

List<int> listExample = new List<int>();
listExample.Add(1);
listExample.Add(2);
int total = 0;
foreach (int num in listExample) {
  total += num;
}

O código acima será executado perfeitamente sem erros. Uma lista nos daria um erro em tempo de compilação sempre que tentarmos adicionar DelftStack à nossa lista que contém apenas valores do tipo de dados inteiro.

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

Artigo relacionado - Csharp List