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.
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