Continuando com nossos artigos
relacionados ao C#, escreverei um pouco sobre os denominados “Arrays” e das
classes “ArrayList” e “List”. De uma forma geral, estas coleções admitem
inserção e manipulação de vários itens em seu interior, podendo acessá-los
através de índices ou chaves. Mas qual seria diferença entre eles? Falarei um
pouco de cada estrutura seguido de exemplos práticos.
Crie uma aplicação “Windows Forms”
adicionando alguns componentes no formulário. A tela deverá ficar idêntica a Imagem 01.
Figura 01: Formulário de Exemplos.
Array
São coleções de dados de um mesmo
tipo, como por exemplo: texto ou inteiro. Uma característica dos “Arrays” é que
eles são estáticos, ou seja, depois de declarado não conseguimos aumentar o seu
tamanho ou a quantidade de posições em tempo de execução. A classe “Array”
utiliza o Namespace “System” que já vem declarado por padrão.
Sintaxe:
Declaração da variável: <tipo>[]
<variavel> = new <tipo>[10];
Onde <tipo> é o tipo de dados
utilizado, <variavel> a variável e String[10] a quantidade de espaço
reservada na memória. Este “Array” terá capacidade de armazenar 10 posições.
Alimentando o Vetor: <variavel>[0] =
"Valor";
Já para armazenar começaremos pelo
índice [0].
Percorrendo o Vetor:
foreach
(var item in valores)
{
//Recuperamos o “item”
}
Para recuperarmos todos os valores podemos fazer um “Foreach” ou se desejarmos
podemos também recuperar dados de um específico índice deste vetor.
Exemplo (Figura 02)
#region Trabalhando com Arrays
private
void button1_Click(object sender, EventArgs e)
{
String[] valores_string = new String[10];
valores_string[0] = "TESTE 00";
valores_string[1] = "TESTE 01";
valores_string[2] = "TESTE 02";
valores_string[3] = "TESTE 03";
valores_string[4] = "TESTE 04";
valores_string[5] = "TESTE 05";
valores_string[6] = "TESTE 06";
valores_string[7] = "TESTE 07";
valores_string[8] = "TESTE 08";
valores_string[9] = "TESTE 09";
foreach (var item in valores_string)
{
listBox1.Items.Add(item);
}
}
#endregion
Figura 02: Exemplo de “Array”.
ArrayList
São coleções que podem ser de diferentes
tipos podendo armazenar valores inteiros, reais, booleanos, objetos, textos,
entre outros. Outra diferença é que são dinâmicos, permitindo a inserção de
elementos em Run-time pelo método “Add()”. O namespace “System.Collection” é o
responsável por trabalhar com este tipo de coleção.
Sintaxe:
Declaração da variável: <ArrayList> <variavel> = new <ArrayList>();
Onde <ArrayList> é a classe
“ArrayList” em questão e <variavel> a variável utilizada. Importante
notar que não definimos quantidade nenhuma de elementos.
Alimentando o Vetor: <variavel>.Add(Valor);
Neste caso inserimos qualquer tipo de
dados.
Percorrendo o Vetor:
foreach
(var item in valores)
{
//Recuperamos o “item”
}
Utilizamos o mesmo procedimento citado anteriormente.
Exemplo (Figura 03)
#region Trabalhando com ArrayList
private
void button2_Click(object sender, EventArgs e)
{
ArrayList valores = new ArrayList();
valores.Add("The Club");
valores.Add(10);
valores.Add(20.5);
valores.Add(false);
valores.Add(true);
valores.Add("Programadores");
valores.Add(25.5f);
foreach (var item in valores)
{
listBox1.Items.Add(item);
}
}
#endregion
Figura 03: Exemplo de “ArrayList”.
List
O “List” é uma mistura das melhores
características do “Array” com o “ArrayList”, pois com ela possuímos uma classe
fortemente tipada (permite apenas um tipo de dados) e dinâmica. Ela se torna
mais ágil que a “ArrayList” por economizar tempo em conversão nos denominados
“Boxing” e “Unboxing”, se destacando como uma ótima opção para quem quer
agilidade e praticidade. O namespace “System.Collection” também é o responsável
por trabalhar com este tipo de coleção.
Sintaxe:
Declaração da variável: <List><tipo> <variavel> = new <List><tipo>();
Onde <List> é a classe “List”,
<tipo> o tipo de dado utilizado e <variavel> a variável utilizada.
Alimentando o Vetor: <variavel>.Add(Valor);
Inserimos valores inteiros.
Percorrendo o Vetor:
foreach
(var item in valores)
{
//Recuperamos o “item”
}
Utilizamos o mesmo procedimento citado anteriormente.
Exemplo (Ver Figura 04)
#region Trabalhando com List
private
void button3_Click(object sender, EventArgs e)
{
List<int> valores = new
List<int>();
valores.Add(1);
valores.Add(10);
valores.Add(100);
valores.Add(1000);
valores.Add(10000);
valores.Add(100000);
valores.Add(1000000);
valores.Add(10000000);
valores.Add(100000000);
valores.Add(1000000000);
foreach (var item in valores)
{
listBox1.Items.Add(item);
}
}
#endregion
Figura 04: Exemplo de “List”.
Conclusão
Neste artigo procurei demonstrar de
uma forma simples e direta a utilização dos principais tipos de coleções de
dados em C#. Estes exemplos são de extrema importância para nosso aprendizado,
pois através destes poderemos continuar com a caminhada no aprendizado desta
poderosa linguagem.
Fica aí a dica, abraço e até o mês que
vem!