Partilhar via


ArrayList Classe

Definição

Implementa a IList interface usando uma matriz cujo tamanho é aumentado dinamicamente conforme necessário.

public ref class ArrayList : System::Collections::IList
public ref class ArrayList : ICloneable, System::Collections::IList
public class ArrayList : System.Collections.IList
public class ArrayList : ICloneable, System.Collections.IList
[System.Serializable]
public class ArrayList : ICloneable, System.Collections.IList
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class ArrayList : ICloneable, System.Collections.IList
type ArrayList = class
    interface IEnumerable
    interface IList
    interface ICollection
type ArrayList = class
    interface ICollection
    interface IEnumerable
    interface IList
    interface ICloneable
type ArrayList = class
    interface IEnumerable
    interface IList
    interface ICollection
    interface ICloneable
[<System.Serializable>]
type ArrayList = class
    interface IList
    interface ICollection
    interface IEnumerable
    interface ICloneable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ArrayList = class
    interface IList
    interface ICollection
    interface IEnumerable
    interface ICloneable
Public Class ArrayList
Implements IList
Public Class ArrayList
Implements ICloneable, IList
Herança
ArrayList
Derivado
Atributos
Implementações

Exemplos

O exemplo a seguir mostra como criar e inicializar um ArrayList e como exibir seus valores.

using System;
using System.Collections;
public class SamplesArrayList  {

   public static void Main()  {

      // Creates and initializes a new ArrayList.
      ArrayList myAL = new ArrayList();
      myAL.Add("Hello");
      myAL.Add("World");
      myAL.Add("!");

      // Displays the properties and values of the ArrayList.
      Console.WriteLine( "myAL" );
      Console.WriteLine( "    Count:    {0}", myAL.Count );
      Console.WriteLine( "    Capacity: {0}", myAL.Capacity );
      Console.Write( "    Values:" );
      PrintValues( myAL );
   }

   public static void PrintValues( IEnumerable myList )  {
      foreach ( Object obj in myList )
         Console.Write( "   {0}", obj );
      Console.WriteLine();
   }
}


/*
This code produces output similar to the following:

myAL
    Count:    3
    Capacity: 4
    Values:   Hello   World   !

*/
Imports System.Collections

Public Class SamplesArrayList    
    
    Public Shared Sub Main()
        
        ' Creates and initializes a new ArrayList.
        Dim myAL As New ArrayList()
        myAL.Add("Hello")
        myAL.Add("World")
        myAL.Add("!")
        
        ' Displays the properties and values of the ArrayList.
        Console.WriteLine("myAL")
        Console.WriteLine("    Count:    {0}", myAL.Count)
        Console.WriteLine("    Capacity: {0}", myAL.Capacity)
        Console.Write("    Values:")
        PrintValues(myAL)
    End Sub

    Public Shared Sub PrintValues(myList As IEnumerable)
        Dim obj As [Object]
        For Each obj In  myList
            Console.Write("   {0}", obj)
        Next obj
        Console.WriteLine()
    End Sub

End Class


' This code produces output similar to the following:
' 
' myAL
'     Count:    3
'     Capacity: 4
'     Values:   Hello   World   !

Comentários

Importante

Não recomendamos que você use a ArrayList classe para um novo desenvolvimento. Em vez disso, recomendamos que você use a classe genérica List<T> . A ArrayList classe foi projetada para conter coleções heterogêneas de objetos. No entanto, nem sempre oferece o melhor desempenho. Em vez disso, recomendamos o seguinte:

  • Para uma coleção heterogênea de objetos, use o List<Object> tipo (em C#) ou List(Of Object) (no Visual Basic).
  • Para uma coleção homogênea de objetos, use a List<T> classe. Consulte Considerações de Desempenho no List<T> tópico de referência para uma discussão sobre o desempenho relativo dessas classes. Consulte coleções não genéricas que não devem ser usadas no GitHub para obter informações gerais sobre o uso de tipos de coleção genéricos em vez de não genéricos.

Não há garantia de que ArrayList esteja em ordem. Você deve classificar chamando seu ArrayListSort método antes de executar operações (como BinarySearch) que exigem a classificação ArrayList . Para manter uma coleção classificada automaticamente à medida que novos elementos são adicionados, você pode usar a SortedSet<T> classe.

A capacidade de um ArrayList é o número de elementos que podem ArrayList conter. À medida que os elementos são adicionados a um ArrayList, a capacidade é automaticamente aumentada conforme necessário por meio da realocação. A capacidade pode ser reduzida chamando TrimToSize ou definindo a Capacity propriedade explicitamente.

Somente .NET Framework: Para objetos muito grandes ArrayList , você pode aumentar a capacidade máxima para 2 bilhões de elementos em um sistema de 64 bits definindo o enabled atributo do elemento de <gcAllowVeryLargeObjects> configuração no true ambiente em tempo de execução.

Os elementos nesta coleção podem ser acessados usando um índice inteiro. Os índices nesta coleção são baseados em zero.

A ArrayList coleção aceita null como um valor válido. Ele também permite elementos duplicados.

Não há suporte para o uso de matrizes multidimensionais como elementos em uma ArrayList coleção.

Construtores

Nome Description
ArrayList()

Inicializa uma nova instância da ArrayList classe que está vazia e tem a capacidade inicial padrão.

ArrayList(ICollection)

Inicializa uma nova instância da ArrayList classe que contém elementos copiados da coleção especificada e que tem a mesma capacidade inicial que o número de elementos copiados.

ArrayList(Int32)

Inicializa uma nova instância da ArrayList classe que está vazia e tem a capacidade inicial especificada.

Propriedades

Nome Description
Capacity

Obtém ou define o número de elementos que podem ArrayList conter.

Count

Obtém o número de elementos realmente contidos no ArrayList.

IsFixedSize

Obtém um valor que indica se o ArrayList tamanho tem um tamanho fixo.

IsReadOnly

Obtém um valor que indica se o ArrayList valor é somente leitura.

IsSynchronized

Obtém um valor que indica se o ArrayList acesso ao é sincronizado (thread safe).

Item[Int32]

Obtém ou define o elemento no índice especificado.

SyncRoot

Obtém um objeto que pode ser usado para sincronizar o acesso ao ArrayList.

Métodos

Nome Description
Adapter(IList)

Cria um ArrayList wrapper para um específico IList.

Add(Object)

Adiciona um objeto ao final do ArrayList.

AddRange(ICollection)

Adiciona os elementos de um ICollection ao final do ArrayList.

BinarySearch(Int32, Int32, Object, IComparer)

Pesquisa um intervalo de elementos na classificação ArrayList de um elemento usando o comparador especificado e retorna o índice baseado em zero do elemento.

BinarySearch(Object, IComparer)

Pesquisa todo o classificado ArrayList por um elemento usando o comparador especificado e retorna o índice baseado em zero do elemento.

BinarySearch(Object)

Pesquisa todo o classificado ArrayList por um elemento usando o comparador padrão e retorna o índice baseado em zero do elemento.

Clear()

Remove todos os elementos do ArrayList.

Clone()

Cria uma cópia superficial do ArrayList.

Contains(Object)

Determina se um elemento está no ArrayList.

CopyTo(Array, Int32)

Copia o todo ArrayList para um unidimensional Arraycompatível, começando no índice especificado da matriz de destino.

CopyTo(Array)

Copia o todo ArrayList para um unidimensional Arraycompatível, começando no início da matriz de destino.

CopyTo(Int32, Array, Int32, Int32)

Copia um intervalo de elementos do ArrayList para um unidimensional Arraycompatível, começando no índice especificado da matriz de destino.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
FixedSize(ArrayList)

Retorna um ArrayList wrapper com um tamanho fixo.

FixedSize(IList)

Retorna um IList wrapper com um tamanho fixo.

GetEnumerator()

Retorna um enumerador para todo ArrayListo .

GetEnumerator(Int32, Int32)

Retorna um enumerador para um intervalo de elementos no ArrayList.

GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetRange(Int32, Int32)

Retorna um ArrayList que representa um subconjunto dos elementos na origem ArrayList.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IndexOf(Object, Int32, Int32)

Pesquisa o índice especificado Object e retorna o índice baseado em zero da primeira ocorrência dentro do intervalo de elementos no ArrayList que começa no índice especificado e contém o número especificado de elementos.

IndexOf(Object, Int32)

Pesquisa o índice especificado Object e retorna o índice baseado em zero da primeira ocorrência dentro do intervalo de elementos no ArrayList que se estende do índice especificado até o último elemento.

IndexOf(Object)

Pesquisa o índice especificado Object e retorna o índice baseado em zero da primeira ocorrência em todo ArrayListo .

Insert(Int32, Object)

Insere um elemento ArrayList no índice especificado.

InsertRange(Int32, ICollection)

Insere os elementos de uma coleção ArrayList no índice especificado.

LastIndexOf(Object, Int32, Int32)

Pesquisa o índice especificado Object e retorna o índice baseado em zero da última ocorrência dentro do intervalo de elementos no ArrayList qual contém o número especificado de elementos e termina no índice especificado.

LastIndexOf(Object, Int32)

Pesquisa o índice especificado Object e retorna o índice baseado em zero da última ocorrência dentro do intervalo de elementos no ArrayList que se estende do primeiro elemento para o índice especificado.

LastIndexOf(Object)

Pesquisa o índice especificado Object e retorna o índice baseado em zero da última ocorrência em todo ArrayListo .

MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
ReadOnly(ArrayList)

Retorna um wrapper somente ArrayList leitura.

ReadOnly(IList)

Retorna um wrapper somente IList leitura.

Remove(Object)

Remove a primeira ocorrência de um objeto específico do ArrayList.

RemoveAt(Int32)

Remove o elemento no índice especificado do ArrayList.

RemoveRange(Int32, Int32)

Remove um intervalo de elementos do ArrayList.

Repeat(Object, Int32)

Retorna um ArrayList cujos elementos são cópias do valor especificado.

Reverse()

Inverte a ordem dos elementos em todo ArrayListo .

Reverse(Int32, Int32)

Inverte a ordem dos elementos no intervalo especificado.

SetRange(Int32, ICollection)

Copia os elementos de uma coleção em um intervalo de elementos no ArrayList.

Sort()

Classifica os elementos em todo ArrayListo .

Sort(IComparer)

Classifica os elementos no todo ArrayList usando o comparador especificado.

Sort(Int32, Int32, IComparer)

Classifica os elementos em um intervalo de elementos ao ArrayList usar o comparador especificado.

Synchronized(ArrayList)

Retorna um ArrayList wrapper sincronizado (thread safe).

Synchronized(IList)

Retorna um IList wrapper sincronizado (thread safe).

ToArray()

Copia os elementos de ArrayList uma nova Object matriz.

ToArray(Type)

Copia os elementos da ArrayList nova matriz do tipo de elemento especificado.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)
TrimToSize()

Define a capacidade como o número real de elementos no ArrayList.

Métodos de Extensão

Nome Description
AsParallel(IEnumerable)

Habilita a paralelização de uma consulta.

AsQueryable(IEnumerable)

Converte um IEnumerable em um IQueryable.

Cast<TResult>(IEnumerable)

Converte os elementos de um IEnumerable para o tipo especificado.

OfType<TResult>(IEnumerable)

Filtra os elementos de um IEnumerable com base em um tipo especificado.

Aplica-se a

Acesso thread-safe

Membros estáticos públicos (Shared no Visual Basic) desse tipo são thread safe. Não há garantia de que quaisquer membros de instância sejam thread-safe.

É ArrayList possível dar suporte a vários leitores simultaneamente, desde que a coleção não seja modificada. Para garantir a segurança do thread, ArrayListtodas as operações devem ser feitas por meio do wrapper retornado pelo Synchronized(IList) método.

Enumerar por meio de uma coleção não é intrinsecamente um procedimento thread-safe. Mesmo quando uma coleção é sincronizada, outros threads ainda podem modificar a coleção, o que faz com que o enumerador gere uma exceção. Para garantir a segurança do thread durante a enumeração, você pode bloquear a coleção durante toda a enumeração ou capturar as exceções resultantes de alterações feitas por outros threads.

Confira também