ArrayList Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Implementa a IList interface usando um array 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
[System.Serializable]
public class ArrayList : ICloneable, System.Collections.IList
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class ArrayList : ICloneable, System.Collections.IList
public class ArrayList : ICloneable, System.Collections.IList
type ArrayList = class
interface IEnumerable
interface IList
interface ICollection
[<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
type ArrayList = class
interface ICollection
interface IEnumerable
interface IList
interface ICloneable
Public Class ArrayList
Implements IList
Public Class ArrayList
Implements ICloneable, IList
- Herança
-
ArrayList
- Derivado
- Atributos
- Implementações
Exemplos
O exemplo seguinte mostra como criar e inicializar um ArrayList e como mostrar os 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 !
Observações
Importante
Não recomendamos que uses a ArrayList disciplina para novos desenvolvimentos. Em vez disso, recomendamos que use a classe genérica List<T> .
A ArrayList aula foi concebida 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 tipo
List<Object>(em C#) ouList(Of Object)(em 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 destas classes. Consulte Coleções não genéricas não devem ser usadas no GitHub para informações gerais sobre o uso de tipos de coleções genéricas em vez de não genéricas.
Não se garante que ArrayList seja ordenado. Deve ordenar o ArrayList chamando o seu Sort método antes de realizar operações (como BinarySearch) que exijam que o ArrayList a ordenar. Para manter uma coleção que é automaticamente ordenada à medida que novos elementos são adicionados, pode usar a SortedSet<T> classe.
A capacidade de um ArrayList é o número de elementos que ArrayList podem dever. À medida que elementos são adicionados a um ArrayList, a capacidade é automaticamente aumentada conforme necessário através da realocação. A capacidade pode ser diminuída chamando TrimToSize ou definindo explicitamente a Capacity propriedade.
.NET Framework apenas: Para objetos muito grandes ArrayList, pode aumentar a capacidade máxima para 2 mil milhões de elementos num sistema de 64 bits definindo o atributo enabled do elemento de configuração <gcAllowVeryLargeObjects> para true no ambiente de execução.
Os elementos desta 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 valor válido. Também permite elementos duplicados.
O uso de arrays multidimensionais como elementos numa ArrayList coleção não é suportado.
Construtores
| Name | 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
| Name | 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 tem um tamanho fixo. |
| IsReadOnly |
Recebe um valor que indica se o ArrayList é apenas de leitura. |
| IsSynchronized |
Recebe um valor que indica se o acesso ao ArrayList é 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
| Name | Description |
|---|---|
| Adapter(IList) | |
| Add(Object) |
Adiciona um objeto ao final do ArrayList. |
| AddRange(ICollection) |
Adiciona os elementos de an ICollection ao final do ArrayList. |
| BinarySearch(Int32, Int32, Object, IComparer) |
Pesquisa um intervalo de elementos ordenados ArrayList por um elemento usando o comparador especificado e devolve o índice zero do elemento. |
| BinarySearch(Object, IComparer) |
Pesquisa todo o elemento ordenado ArrayList usando o comparador especificado e devolve o índice zero do elemento. |
| BinarySearch(Object) |
Pesquisa em todo o ArrayList conjunto ordenado por um elemento usando o comparador padrão e retorna o índice zero do elemento. |
| Clear() |
Remove todos os elementos do ArrayList. |
| Clone() |
Cria uma cópia superficial do ArrayList. |
| Contains(Object) |
Determina se um elemento pertence ao ArrayList. |
| CopyTo(Array, Int32) |
Copia a totalidade ArrayList para uma unidimensional Arraycompatível , começando no índice especificado do array alvo. |
| CopyTo(Array) |
Copia a totalidade ArrayList para um conjunto unidimensional Arraycompatível , começando no início do array alvo. |
| CopyTo(Int32, Array, Int32, Int32) |
Copia um intervalo de elementos desde o ArrayList até um unidimensional Arraycompatível , começando no índice especificado do array alvo. |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| FixedSize(ArrayList) |
Devolve uma ArrayList embalagem com tamanho fixo. |
| FixedSize(IList) |
Devolve uma IList embalagem com tamanho fixo. |
| GetEnumerator() |
Devolve um enumerador para todo ArrayListo . |
| GetEnumerator(Int32, Int32) |
Devolve um enumerador para um conjunto de elementos no ArrayList. |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetRange(Int32, Int32) |
Devolve um ArrayList que representa um subconjunto dos elementos na fonte ArrayList. |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| IndexOf(Object, Int32, Int32) |
Procura o especificado Object e retorna o índice baseado em zero da primeira ocorrência dentro do intervalo de elementos em que ArrayList começa no índice especificado e contém o número especificado de elementos. |
| IndexOf(Object, Int32) |
Procura o especificado Object e retorna o índice baseado em zero da primeira ocorrência dentro do intervalo de elementos em que ArrayList se estende do índice especificado até ao último elemento. |
| IndexOf(Object) |
Procura o especificado Object e devolve o índice baseado em zero da primeira ocorrência dentro de todo ArrayListo . |
| Insert(Int32, Object) |
Insere um elemento no ArrayList índice especificado. |
| InsertRange(Int32, ICollection) |
Insere os elementos de uma coleção no ArrayList no índice especificado. |
| LastIndexOf(Object, Int32, Int32) |
Procura o especificado Object e devolve o índice baseado em zero da última ocorrência dentro do intervalo de elementos em que ArrayList contém o número especificado de elementos e termina no índice especificado. |
| LastIndexOf(Object, Int32) |
Procura o especificado Object e devolve o índice baseado em zero da última ocorrência dentro do intervalo de elementos em que ArrayList se estende do primeiro elemento até ao índice especificado. |
| LastIndexOf(Object) |
Procura o especificado Object e devolve o índice zero da última ocorrência dentro de todo ArrayListo . |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| ReadOnly(ArrayList) |
Devolve uma embalagem de apenas ArrayList leitura. |
| ReadOnly(IList) |
Devolve uma embalagem de apenas 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 conjunto de elementos do ArrayList. |
| Repeat(Object, Int32) |
Devolve e 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 sobre um conjunto de elementos no ArrayList. |
| Sort() |
Ordena os elementos em todo ArrayListo . |
| Sort(IComparer) |
Ordena os elementos no todo ArrayList usando o comparador especificado. |
| Sort(Int32, Int32, IComparer) |
Ordena os elementos num intervalo de elementos usando ArrayList o comparador especificado. |
| Synchronized(ArrayList) |
Devolve um ArrayList wrapper sincronizado (thread safe). |
| Synchronized(IList) |
Devolve um IList wrapper sincronizado (thread safe). |
| ToArray() | |
| ToArray(Type) |
Copia os elementos de para ArrayList um novo array do tipo de elemento especificado. |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |
| TrimToSize() |
Define a capacidade para o número real de elementos no ArrayList. |
Métodos da Extensão
| Name | Description |
|---|---|
| AsParallel(IEnumerable) |
Permite a paralelização de uma consulta. |
| AsQueryable(IEnumerable) |
Converte um IEnumerable para um IQueryable. |
| Cast<TResult>(IEnumerable) |
Conjura os elementos de an IEnumerable para o tipo especificado. |
| OfType<TResult>(IEnumerable) |
Filtra os elementos de um IEnumerable com base num tipo especificado. |
Aplica-se a
Segurança de Thread
Os membros estáticos públicos (Shared em Visual Basic) deste tipo são seguros para threads. Qualquer membro de instância não é garantido que seja seguro contra threads.
An ArrayList pode suportar múltiplos leitores em simultâneo, desde que a coleção não seja modificada. Para garantir a segurança da thread do ArrayList, todas as operações devem ser feitas através do invólucro devolvido pelo Synchronized(IList) método.
Enumerar através de uma coleção não é, intrinsecamente, um procedimento seguro para threads. Mesmo quando uma coleção está sincronizada, outros threads ainda podem modificar a coleção, o que faz com que o enumerador lance uma exceção. Para garantir a segurança dos threads durante a enumeração, pode bloquear a coleção durante toda a enumeração ou apanhar as exceções resultantes de alterações feitas por outros threads.