Olá pessoal, neste artigo veremos os conceitos e exemplos sobre as Coleções da linguagem C#. Veremos nesta parte as diferenças entre Coleções e Arrays, além de exemplos com ArrayList. Acompanhem:
Coleções são estruturas oferecidas pelo .NET Framework para coletar elementos de qualquer tipo. As classes Collection podem ser usadas ao invés dos arrays, os quais também recolhem elementos do mesmo tipo, mais apresentam algumas limitações, que veremos mais adiante.
O tipo de elemento de uma classe Collection é um objeto. Por esta razão, os elementos pertencentes a uma classe Collection básica são aceitos como objetos, bem como retornados e mantidos como tais.
Ao introduzirmos um valor qualquer em uma coleção, este sofre a operação conhecida como Boxing (se for um tipo por valor, é transformado em um tipo por referência). Porém, devemos usar a operação de Unboxing (transformar em referência) ao valor posteriormente se quisermos acessar seus dados.
Diferenças entre Coleções e Arrays – Veja a seguir na tabela as principais diferenças entre eles:
| Característica | Coleções | Arrays |
| Redimensionamento | As coleções tem a capacidade de se redimensionarem dinamicamente, conforme o necessário. | Não podem aumentar ou diminuir de tamanho, ou seja, o array possui tamanho fixo. |
| Estrutura de Dados | Os itens das coleções dentro de um loop são disponibilizados como “somente leitura”. | Não há como criarmos arrays “somente leitura”. Eles são uma estrutura de dados de leitura/gravação. |
| Declaração do tipo do elemento | Por armazenarem seus elementos como objetos, as coleções não declaram o tipo de elemento que possuem. | A declaração do tipo do elemento que possuem é uma característica dos arrays. |
Implicações do uso dos Arrays – Antes de se aprofundarmos nos exemplos do ArrayList, devemos nos atentar a alguns aspectos sobre os arrays comuns. O uso deles possui algumas implicações. Uma delas é a necessidade de copiar um elemento e movê-lo pra cima, através de um determinado local, todos os elementos seguintes se quisermos remover esse elemento do array. O resultado desse procedimento é que, assim, obtemos duas cópias do último elemento.
Outra implicação é que, se desejarmos redimensionar um array, precisaremos fazer o seguinte:
1- Criar um novo array;
2- Copiar os elementos. Se o novo array for menor, devemos deixar alguns elementos de fora;
3- Finalmente devemos atualizar as referências do array.
Um último aspecto implicante dos arrays comuns está relacionado ao fato de precisarmos mover os elementos para baixo, através de um determinado local, a fim de liberar um slot, isto caso precisemos incluir um elemento no array. Desta forma, o último elemento do array é perdido.
Como podemos perceber os arrays, apesar de muito úteis em determinados casos, apresentam algumas restrições em seu uso. Para caso onde o número de elementos varia, a melhor solução é o uso de coleções, que é o que veremos na próxima parte do artigo.
Fonte de Consulta: Apostila de C#, da Impacta Tecnologia.
Assim finalizo o artigo. Como já disse, na próxima parte veremos exemplos com ArrayList e suas principais propriedades e métodos, não percam!
Um abraço, e até o próximo artigo.
Wellington Balbo de Camargo