Tutorial ArrayList C# com exemplos

⚡ Resumo Inteligente

Em C#, ArrayList é uma coleção dinâmica do namespace System.Collections que armazena elementos como objetos. Diferentemente de um array, ela cresce e diminui em tempo de execução e pode conter inteiros, strings e valores booleanos em uma única lista.

  • 🔄 Dimensionamento dinâmico: O ArrayList adiciona e remove elementos em tempo de execução, portanto você não fixa o número de itens antecipadamente como em um array.
  • 📦 Armazenamento de objetos: Cada elemento é armazenado como um objeto, o que permite que um ArrayList contenha tipos de dados mistos, como int, string e bool.
  • Métodos principais: Os métodos add, insert, remove, removeAt, contains e sort abrangem as operações cotidianas em um ArrayList.
  • 📊 Quantidade e capacidade: A propriedade Count retorna o número atual de itens, enquanto Capacity é o espaço de armazenamento alocado.
  • Escolha moderna: Microsoft Recomenda-se o uso da lista genérica para novos códigos, pois ela adiciona segurança de tipo em tempo de compilação e evita o boxing.
  • 🤖 Assistência de IA: O GitHub Copilot cria a estrutura do código ArrayList e os pipelines do ML.NET passam dados por meio de tipos de coleção C#.

ArrayList em C#

O que é ArrayList em C#?

A coleção ArrayList é semelhante ao Arrays tipo de dados em C#. A maior diferença é a natureza dinâmica da coleção da lista de arrays.

Para arrays, você precisa definir o número de elementos que o array pode conter no momento da declaração do array. Mas no caso da coleção Array List, isso não precisa ser feito previamente. Os elementos podem ser adicionados ou removidos da coleção Array List a qualquer momento. Vejamos as operações disponíveis para a coleção de listas de arrays com mais detalhes.

Declaração de uma lista de array

A declaração de um ArrayList é fornecida abaixo. Uma lista de array é criada com a ajuda do tipo de dados ArrayList. A palavra-chave “new” é usada para criar um objeto de um ArrayList. O objeto é então atribuído à variável a1. Então agora a variável a1 será usada para acessar os diferentes elementos da lista do array.

ArrayList a1 = new ArrayList()

Adicionando elementos a um array

O método add é usado para adicionar um elemento ao ArrayList. O método add pode ser usado para adicionar qualquer tipo de elemento de tipo de dados à lista de array. Portanto, você pode adicionar um número inteiro, uma string ou até mesmo um valor booleano à lista do array. A sintaxe geral do método de adição é fornecida abaixo

ArrayList.add(element)

Abaixo estão alguns exemplos de como o método “adicionar” pode ser usado. O método add pode ser usado para adicionar vários tipos de dados à coleção Array List.

Abaixo você pode ver exemplos de como podemos adicionar Strings de números inteiros e até valores booleanos à coleção Array List.

  • a1.add(1) – Isso adicionará um valor inteiro à coleção
  • a1.add(“Exemplo”) – Isso adicionará um valor String à coleção
  • a1.add(true) – Isso adicionará um valor booleano à coleção

Agora vamos ver isso funcionando no nível do código. Todo o código mencionado abaixo será gravado em nosso aplicativo de console. O código será gravado em nosso arquivo Program.cs.

No programa abaixo, escreveremos o código para criar uma nova lista de arrays. Também mostraremos como adicionar elementos e exibir os elementos da lista Array.

ArrayList em C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DemoApplication
{
 class Program
 {
  static void Main(string[] args)
  {
   ArrayList a1 = new ArrayList();
   a1.Add(1);
   a1.Add("Example");
   a1.Add(true);
   
   Console.WriteLine(a1[0]);	  
   Console.WriteLine(a1[1]);
   Console.WriteLine(a1[2]);
   Console.ReadKey();
  }
 }
}

Code Explicação:-

  1. A primeira etapa é usada para declarar nossa lista de arrays. Aqui estamos declarando a1 como uma variável para armazenar os elementos de nossa lista de array.
  2. Em seguida, usamos a palavra-chave add para adicionar o número 1, a String “Exemplo” e o valor booleano 'true' à lista do array.
  3. Em seguida, usamos o método Console.WriteLine para exibir o valor de cada elemento da lista de array no console. Você notará que, assim como os arrays, podemos acessar os elementos por meio de suas posições de índice. Portanto, para acessar a primeira posição do Array List, usamos a posição do índice [0]. E assim por diante.

Se o código acima for inserido corretamente e o programa for executado, a seguinte saída será exibida.

Saída:

ArrayList em C#

Na saída, você pode ver que todos os elementos da lista do array são enviados para o console.

Vejamos mais alguns métodos que estão disponíveis como parte do ArrayList.

Contar

Este método é usado para obter o número de itens na coleção ArrayList. Abaixo está a sintaxe geral desta instrução.

ArrayList.Count() – Este método retornará o número de elementos que a lista do array contém.

contém

Este método é usado para verificar se um elemento está presente na coleção ArrayList. Abaixo está a sintaxe geral desta declaração

ArrayList.Contains(element) – Este método retornará verdadeiro se o elemento estiver presente na lista, caso contrário retornará falso.

RemoverEm

Este método é usado para remover um elemento em uma posição específica na coleção ArrayList. Abaixo está a sintaxe geral desta declaração

ArrayList.RemoveAt(index) – Este método removerá um elemento de uma posição específica da Lista Array.

Agora vamos ver isso funcionando no nível do código. Todo o código mencionado abaixo será gravado em nosso aplicativo de console. O código será gravado em nosso arquivo Program.cs.

No programa abaixo, escreveremos o código para ver como podemos usar os métodos mencionados acima.

ArrayList em C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DemoApplication
{
 class Program
 {
  static void Main(string[] args)
  {
   ArrayList a1 = new ArrayList();
   a1.Add(1);
   a1.Add("Example");
   a1.Add(true);
   
   Console.WriteLine(a1.Count);
   Console.WriteLine(a1.Contains(2));
   Console.WriteLine(a1[1]);
   a1.RemoveAt(1);
   Console.WriteLine(a1[1]);
   Console.ReadKey();
  }
 }
}

Code Explicação:-

  1. Portanto, a primeira propriedade que vemos é a propriedade Count. Estamos obtendo a propriedade Count da lista de array a1 e depois gravando-a no Console.
  2. Na segunda parte, estamos usando o método Contains para ver se ArrayList a1 contém o elemento 2. Em seguida, escrevemos o resultado no Console por meio do comando Writeline.
  3. Finalmente, para mostrar o método Remover elemento, estamos executando as etapas abaixo,
    1. Primeiro, escrevemos o valor do elemento na posição 1 do índice da lista de arrays no console.
    2. Em seguida, removemos o elemento na posição 1 do índice da lista do array.
    3. Finalmente, escrevemos novamente o valor do elemento na posição 1 do índice da lista de arrays no console. Este conjunto de etapas dará uma boa ideia se o método de remoção funcionará como deveria.

Se o código acima for inserido corretamente e o programa for executado, a seguinte saída será exibida.

Saída:

ArrayList em C#

Por que o último valor é verdadeiro?

Se você vir a sequência de eventos, o elemento Exemplo é removido da matriz porque está na posição 1. A posição 1 da matriz é substituída pelo que estava na posição 2 anteriormente, cujo valor é 'true'

Como percorrer um ArrayList em C#

Ler todos os elementos de um ArrayList é uma tarefa comum. Como um ArrayList armazena seus itens como objetos, você pode visitá-los com um loop foreach ou com um loop for que utiliza a propriedade Count. O loop foreach é a maneira mais simples, pois percorre cada item em ordem, sem a necessidade de um índice.

O exemplo abaixo cria um ArrayList de strings e imprime cada valor em sua própria linha. O código está escrito no arquivo Program.cs de um aplicativo de console.

Passo 1) Importe o namespace System.Collections e crie um ArrayList com três itens.

Passo 2) Utilize um loop foreach para ler cada elemento como um objeto e escrevê-lo no console.

using System;
using System.Collections;

namespace DemoApplication
{
 class Program
 {
  static void Main(string[] args)
  {
   ArrayList a1 = new ArrayList();
   a1.Add("Java");
   a1.Add("Python");
   a1.Add("Kotlin");
   foreach (object item in a1)
   {
    Console.WriteLine(item);
   }
   Console.ReadKey();
  }
 }
}

Code Explicação:-

  1. O namespace System.Collections foi importado para que o tipo ArrayList esteja disponível para o programa.
  2. Três valores de string são adicionados ao ArrayList com o método Add.
  3. O loop foreach lê cada item como um objeto, e o método Console.WriteLine o imprime em uma nova linha.

Quando o programa é executado, ele imprime Java, Python e Kotlin em linhas separadas. Um loop for com a propriedade Count daria o mesmo resultado, permitindo também usar a posição do índice de cada elemento.

Métodos e propriedades do ArrayList em C#

A classe ArrayList fornece muitos métodos e propriedades integrados para gerenciar seus elementos. Além de adicionar e remover itens, ela pode classificar, pesquisar e inverter a coleção. Os membros mais comuns estão listados abaixo.

Vogal Descrição
Adicione Adiciona um único elemento ao final do ArrayList.
inserção Adiciona um elemento em uma posição de índice específica.
Eliminar Remove a primeira ocorrência de um elemento específico.
RemoverEm Remove o elemento na posição de índice especificada.
Limpar Remove todos os elementos do ArrayList.
tipo Ordena os elementos em ordem crescente.
Reverse Reverseé a ordem dos elementos na lista.
contém Retorna verdadeiro se o elemento em questão existir na lista.
Índice de Retorna a posição do índice de um determinado elemento.
Contar Propriedade que retorna o número de elementos armazenados.
Capacidade Propriedade que retorna o número de elementos que a lista pode conter.

Esses elementos permitem adicionar, encontrar, ordenar e remover itens sem precisar escrever a lógica manualmente, o que é uma das principais vantagens de usar uma coleção em vez de um array simples.

Diferença entre ArrayList e List em C#

Tanto um ArrayList quanto um genérico Lista Armazenam um grupo de itens que pode crescer em tempo de execução, mas diferem na forma como lidam com os tipos. Conhecer a diferença ajuda você a escolher a opção certa para o código C# moderno.

As principais diferenças estão listadas abaixo:

  • Segurança do tipo: Um ArrayList armazena cada item como um objeto, enquanto uma List é vinculada a um tipo declarado e verificada em tempo de compilação.
  • Desempenho: Um ArrayList converte e desconverte tipos de valor como int, o que consome tempo de processamento, enquanto uma List evita essa conversão para maior velocidade.
  • Domínio: ArrayList reside em System.Collections, enquanto List reside em System.Collections.Generic.
  • Conjurar: A leitura de um ArrayList geralmente requer uma conversão de volta para o tipo original, mas uma List retorna o tipo correto diretamente.
  • Recomendação: Microsoft Recomenda-se o uso de listas para novos desenvolvimentos por ser mais seguro, rápido e fácil de ler.

Resumindo, um ArrayList é útil para entender códigos antigos ou armazenamento de tipos mistos, enquanto uma List é a escolha preferida para a maioria das aplicações atuais.

Perguntas Frequentes

Um array tem tamanho fixo e armazena um único tipo de dado definido na declaração. Um ArrayList cresce e diminui em tempo de execução e armazena cada item como um objeto, podendo assim conter tipos de dados mistos em uma única lista.

ArrayList não é removido, mas Microsoft Não é recomendável para novos desenvolvimentos. A classe genérica List em System.Collections.Generic é preferível porque adiciona segurança de tipos e melhor desempenho, portanto, a maioria dos códigos C# modernos usa List em vez de List.

Como um ArrayList armazena itens como objetos, adicionar um tipo de valor como int o encapsula em um objeto, o que é chamado de boxing. Ler o valor de volta e convertê-lo para o tipo original é chamado de unboxing. Ambas as etapas afetam o desempenho, algo que o List evita.

Um ArrayList suporta vários leitores simultâneos, mas não há garantia de que os membros da instância sejam thread-safe quando a coleção é modificada. Para gravações multithread seguras, utilize um ArrayList.Syncou utilize uma coleção concorrente.

`Count` representa o número de elementos atualmente armazenados no `ArrayList`. `Capacity` representa o número total de elementos que ele pode armazenar antes de ser redimensionado. `Capacity` é sempre igual ou maior que `Count` e aumenta automaticamente à medida que você adiciona itens.

Você pode copiar os itens para uma lista fortemente tipada com os métodos Cast e ToList, ou chamar o método ToArray para obter um array de objetos. Converter para uma lista genérica é comum porque restaura a segurança de tipos.

Sim. O GitHub Copilot consegue escrever declarações de ArrayList, adicionar e remover chamadas e criar loops a partir de um comentário curto ou nome de método. Ele costuma sugerir também a versão genérica List, já que essa é a coleção recomendada para novos códigos C#.

O ML.NET geralmente lê dados de treinamento por meio de coleções genéricas, como List e IEnumerable, que são mapeadas para seu pipeline IDataView. Um ArrayList não genérico raramente é usado diretamente, pois uma coleção fortemente tipada mantém os dados de aprendizado de máquina claros e seguros em relação aos tipos.

Resuma esta postagem com: