ArrayList Clase

Definición

Implementa la interfaz IList utilizando una matriz cuyo tamaño aumenta dinámicamente cuando es necesario.Implements the IList interface using an array whose size is dynamically increased as required.

public ref class ArrayList : ICloneable, System::Collections::IList
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class ArrayList : ICloneable, System.Collections.IList
type ArrayList = class
    interface IList
    interface ICloneable
    interface ICollection
    interface IEnumerable
Public Class ArrayList
Implements ICloneable, IList
Herencia
ArrayList
Derivado
Atributos
Implementaciones

Ejemplos

En el ejemplo siguiente se muestra cómo crear e inicializar un ArrayList y cómo mostrar sus valores.The following example shows how to create and initialize an ArrayList and how to display its values.

using namespace System;
using namespace System::Collections;
void PrintValues( IEnumerable^ myList );
int main()
{
   
   // Creates and initializes a new ArrayList.
   ArrayList^ myAL = gcnew 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 );
}

void PrintValues( IEnumerable^ myList )
{
   IEnumerator^ myEnum = myList->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      Object^ obj = safe_cast<Object^>(myEnum->Current);
      Console::Write( "   {0}", obj );
   }

   Console::WriteLine();
}

/* 
This code produces output similar to the following:

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

*/
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   !

Comentarios

Importante

No se recomienda usar la clase ArrayList para el nuevo desarrollo.We don't recommend that you use the ArrayList class for new development. En su lugar, se recomienda usar la clase genérica List<T>.Instead, we recommend that you use the generic List<T> class. La clase ArrayList está diseñada para contener colecciones heterogéneas de objetos.The ArrayList class is designed to hold heterogeneous collections of objects. Sin embargo, no siempre ofrece el mejor rendimiento.However, it does not always offer the best performance. En su lugar, se recomienda lo siguiente:Instead, we recommend the following:

  • En el caso de una colección heterogénea de objetos, utilice el tipo @no__t C#-0 (en) o List(Of Object) (en Visual Basic).For a heterogeneous collection of objects, use the List<Object> (in C#) or List(Of Object) (in Visual Basic) type.
  • Para una colección homogénea de objetos, utilice la clase List<T>.For a homogeneous collection of objects, use the List<T> class.
    Vea consideraciones de rendimiento en el tema de referencia de List<T> para obtener una explicación del rendimiento relativo de estas clases.See Performance Considerations in the List<T> reference topic for a discussion of the relative performance of these classes. Consulte no se deben usar colecciones no genéricas en github para obtener información general sobre el uso de genéricos en lugar de tipos de colección no genéricos.See Non-generic collections shouldn't be used on GitHub for general information on the use of generic instead of non-generic collection types.

No se garantiza que el ArrayList esté ordenado.The ArrayList is not guaranteed to be sorted. Debe ordenar el ArrayList llamando a su método Sort antes de realizar las operaciones (como BinarySearch) que requieren que se ordene el ArrayList.You must sort the ArrayList by calling its Sort method prior to performing operations (such as BinarySearch) that require the ArrayList to be sorted. Para mantener una colección que se ordene automáticamente a medida que se agregan nuevos elementos, puede utilizar la clase SortedSet<T>.To maintain a collection that is automatically sorted as new elements are added, you can use the SortedSet<T> class.

La capacidad de un ArrayList es el número de elementos que puede contener el ArrayList.The capacity of an ArrayList is the number of elements the ArrayList can hold. A medida que se agregan elementos a un ArrayList, la capacidad aumenta automáticamente según sea necesario a través de la reasignación.As elements are added to an ArrayList, the capacity is automatically increased as required through reallocation. La capacidad se puede reducir si se llama a TrimToSize o se establece la propiedad Capacity explícitamente.The capacity can be decreased by calling TrimToSize or by setting the Capacity property explicitly.

Solo .NET Framework: En el caso de los objetos ArrayList muy grandes, puede aumentar la capacidad máxima a 2 mil millones elementos en un sistema de 64 bits estableciendo el atributo enabled del elemento de configuración <gcAllowVeryLargeObjects> en true en el entorno de tiempo de ejecución..NET Framework only: For very large ArrayList objects, you can increase the maximum capacity to 2 billion elements on a 64-bit system by setting the enabled attribute of the <gcAllowVeryLargeObjects> configuration element to true in the run-time environment.

Se puede tener acceso a los elementos de esta colección mediante un índice de entero.Elements in this collection can be accessed using an integer index. Los índices de esta colección tienen una base cero.Indexes in this collection are zero-based.

La colección ArrayList acepta null como valor válido.The ArrayList collection accepts null as a valid value. También permite elementos duplicados.It also allows duplicate elements.

No se admite el uso de matrices multidimensionales como elementos en una colección ArrayList.Using multidimensional arrays as elements in an ArrayList collection is not supported.

Constructores

ArrayList()

Inicializa una nueva instancia de la clase ArrayList que está vacía y tiene la capacidad inicial predeterminada.Initializes a new instance of the ArrayList class that is empty and has the default initial capacity.

ArrayList(ICollection)

Inicializa una nueva instancia de la clase ArrayList que contiene elementos copiados de la colección especificada y que tiene la misma capacidad inicial que el número de elementos copiados.Initializes a new instance of the ArrayList class that contains elements copied from the specified collection and that has the same initial capacity as the number of elements copied.

ArrayList(Int32)

Inicializa una nueva instancia de la clase ArrayList que está vacía y tiene la capacidad inicial especificada.Initializes a new instance of the ArrayList class that is empty and has the specified initial capacity.

Propiedades

Capacity

Obtiene o establece el número de elementos que puede contener ArrayList.Gets or sets the number of elements that the ArrayList can contain.

Count

Obtiene el número de elementos contenido realmente en ArrayList.Gets the number of elements actually contained in the ArrayList.

IsFixedSize

Obtiene un valor que indica si la interfaz ArrayList tiene un tamaño fijo.Gets a value indicating whether the ArrayList has a fixed size.

IsReadOnly

Obtiene un valor que indica si ArrayList es de solo lectura.Gets a value indicating whether the ArrayList is read-only.

IsSynchronized

Obtiene un valor que indica si el acceso a la interfaz ArrayList está sincronizado (es seguro para subprocesos).Gets a value indicating whether access to the ArrayList is synchronized (thread safe).

Item[Int32]

Obtiene o establece el elemento en el índice especificado.Gets or sets the element at the specified index.

SyncRoot

Obtiene un objeto que se puede usar para sincronizar el acceso a ArrayList.Gets an object that can be used to synchronize access to the ArrayList.

Métodos

Adapter(IList)

Crea un contenedor de ArrayList para una interfaz IList concreta.Creates an ArrayList wrapper for a specific IList.

Add(Object)

Agrega un objeto al final de ArrayList.Adds an object to the end of the ArrayList.

AddRange(ICollection)

Agrega los elementos de ICollection al final de ArrayList.Adds the elements of an ICollection to the end of the ArrayList.

BinarySearch(Int32, Int32, Object, IComparer)

Busca un elemento en un intervalo de elementos del objeto ArrayList ordenado usando el comparador especificado y devuelve el índice de base cero del elemento.Searches a range of elements in the sorted ArrayList for an element using the specified comparer and returns the zero-based index of the element.

BinarySearch(Object)

Busca la ArrayList completa ordenada para un elemento usando el comparador predeterminado y devuelve el índice de base cero del elemento.Searches the entire sorted ArrayList for an element using the default comparer and returns the zero-based index of the element.

BinarySearch(Object, IComparer)

Busca la ArrayList completa ordenada para un elemento usando el comparador especificado y devuelve el índice de base cero del elemento.Searches the entire sorted ArrayList for an element using the specified comparer and returns the zero-based index of the element.

Clear()

Quita todos los elementos de ArrayList.Removes all elements from the ArrayList.

Clone()

Crea una copia superficial de la colección ArrayList.Creates a shallow copy of the ArrayList.

Contains(Object)

Determina si un elemento se encuentra en ArrayList.Determines whether an element is in the ArrayList.

CopyTo(Array)

Copia la ArrayList completa en una Array unidimensional compatible, empezando en el principio de la matriz de destino.Copies the entire ArrayList to a compatible one-dimensional Array, starting at the beginning of the target array.

CopyTo(Array, Int32)

Copia la totalidad de ArrayList en una matriz Array unidimensional compatible, comenzando en el índice especificado de la matriz de destino.Copies the entire ArrayList to a compatible one-dimensional Array, starting at the specified index of the target array.

CopyTo(Int32, Array, Int32, Int32)

Copia un intervalo de elementos de ArrayList en una Array unidimensional compatible, empezando en el índice especificado de la matriz de destino.Copies a range of elements from the ArrayList to a compatible one-dimensional Array, starting at the specified index of the target array.

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(Heredado de Object)
FixedSize(ArrayList)

Devuelve un contenedor de ArrayList con un tamaño fijo.Returns an ArrayList wrapper with a fixed size.

FixedSize(IList)

Devuelve un contenedor de IList con un tamaño fijo.Returns an IList wrapper with a fixed size.

GetEnumerator()

Devuelve un enumerador para la ArrayList completa.Returns an enumerator for the entire ArrayList.

GetEnumerator(Int32, Int32)

Devuelve un enumerador para un intervalo de elementos de la matriz ArrayList.Returns an enumerator for a range of elements in the ArrayList.

GetHashCode()

Sirve como función hash predeterminada.Serves as the default hash function.

(Heredado de Object)
GetRange(Int32, Int32)

Devuelve una ArrayList que representa un subconjunto de los elementos de la ArrayList de origen.Returns an ArrayList which represents a subset of the elements in the source ArrayList.

GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
IndexOf(Object)

Busca el objeto Object especificado y devuelve el índice de base cero de la primera aparición en toda la colección ArrayList.Searches for the specified Object and returns the zero-based index of the first occurrence within the entire ArrayList.

IndexOf(Object, Int32)

Busca el objeto Object especificado y devuelve el índice de base cero de la primera aparición dentro del intervalo de elementos de la matriz ArrayList que abarca desde el índice especificado hasta el último elemento.Searches for the specified Object and returns the zero-based index of the first occurrence within the range of elements in the ArrayList that extends from the specified index to the last element.

IndexOf(Object, Int32, Int32)

Busca el objeto Object especificado y devuelve el índice de base cero de la primera aparición dentro del intervalo de elementos de la matriz ArrayList que comienza en el índice especificado y contiene el número especificado de elementos.Searches for the specified Object and returns the zero-based index of the first occurrence within the range of elements in the ArrayList that starts at the specified index and contains the specified number of elements.

Insert(Int32, Object)

Inserta un elemento en ArrayList en el índice especificado.Inserts an element into the ArrayList at the specified index.

InsertRange(Int32, ICollection)

Inserta los elementos de una colección en ArrayList en el índice especificado.Inserts the elements of a collection into the ArrayList at the specified index.

LastIndexOf(Object)

Busca el Object especificado y devuelve el índice de base cero de la última aparición en la ArrayList completa.Searches for the specified Object and returns the zero-based index of the last occurrence within the entire ArrayList.

LastIndexOf(Object, Int32)

Busca el objeto Object especificado y devuelve el índice de base cero de la última aparición dentro del intervalo de elementos de la matriz ArrayList que abarca desde el primer elemento hasta el último índice especificado.Searches for the specified Object and returns the zero-based index of the last occurrence within the range of elements in the ArrayList that extends from the first element to the specified index.

LastIndexOf(Object, Int32, Int32)

Busca el objeto Object especificado y devuelve el índice de base cero de la última aparición dentro del intervalo de elementos de la matriz ArrayList que contiene el número de elementos especificado y termina en el índice especificado.Searches for the specified Object and returns the zero-based index of the last occurrence within the range of elements in the ArrayList that contains the specified number of elements and ends at the specified index.

MemberwiseClone()

Crea una copia superficial del Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
ReadOnly(ArrayList)

Devuelve un contenedor de ArrayList de solo lectura.Returns a read-only ArrayList wrapper.

ReadOnly(IList)

Devuelve un contenedor de IList de solo lectura.Returns a read-only IList wrapper.

Remove(Object)

Quita la primera aparición de un objeto específico de la interfaz ArrayList.Removes the first occurrence of a specific object from the ArrayList.

RemoveAt(Int32)

Quita el elemento situado en el índice especificado de ArrayList.Removes the element at the specified index of the ArrayList.

RemoveRange(Int32, Int32)

Quita todos los elementos de ArrayList.Removes a range of elements from the ArrayList.

Repeat(Object, Int32)

Devuelve una ArrayList cuyos elementos son copias del valor especificado.Returns an ArrayList whose elements are copies of the specified value.

Reverse()

Invierte el orden de los elementos en la ArrayList completa.Reverses the order of the elements in the entire ArrayList.

Reverse(Int32, Int32)

Invierte el orden de los elementos en el intervalo especificado.Reverses the order of the elements in the specified range.

SetRange(Int32, ICollection)

Copia los elementos de una colección en un intervalo de elementos de ArrayList.Copies the elements of a collection over a range of elements in the ArrayList.

Sort()

Ordena todos los elementos de ArrayList.Sorts the elements in the entire ArrayList.

Sort(IComparer)

Ordena los elementos en la ArrayList completa usando el comparador especificado.Sorts the elements in the entire ArrayList using the specified comparer.

Sort(Int32, Int32, IComparer)

Ordena los elementos en un intervalo de elementos de la matriz ArrayList usando el comparador especificado.Sorts the elements in a range of elements in ArrayList using the specified comparer.

Synchronized(ArrayList)

Devuelve un contenedor de la clase ArrayList que está sincronizado (es seguro para subprocesos).Returns an ArrayList wrapper that is synchronized (thread safe).

Synchronized(IList)

Devuelve un contenedor de la clase IList que está sincronizado (es seguro para subprocesos).Returns an IList wrapper that is synchronized (thread safe).

ToArray()

Copia los elementos de ArrayList en una nueva matriz de Object.Copies the elements of the ArrayList to a new Object array.

ToArray(Type)

Copia los elementos de la matriz ArrayList a una nueva matriz del tipo de elemento especificado.Copies the elements of the ArrayList to a new array of the specified element type.

ToString()

Devuelve un valor de tipo string que representa el objeto actual.Returns a string that represents the current object.

(Heredado de Object)
TrimToSize()

Establece la capacidad en el número real de elementos que hay en ArrayList.Sets the capacity to the actual number of elements in the ArrayList.

Métodos de extensión

Cast<TResult>(IEnumerable)

Convierte los elementos de IEnumerable en el tipo especificado.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Filtra los elementos de IEnumerable en función de un tipo especificado.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Habilita la paralelización de una consulta.Enables parallelization of a query.

AsQueryable(IEnumerable)

Convierte una interfaz IEnumerable en IQueryable.Converts an IEnumerable to an IQueryable.

Se aplica a

Seguridad para subprocesos

Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para subprocesos.Public static (Shared in Visual Basic) members of this type are thread safe. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.Any instance members are not guaranteed to be thread safe.

Un ArrayList puede admitir varios lectores simultáneamente, siempre y cuando no se modifique la colección.An ArrayList can support multiple readers concurrently, as long as the collection is not modified. Para garantizar la seguridad para subprocesos del ArrayList, todas las operaciones se deben realizar a través del contenedor devuelto por el método Synchronized(IList).To guarantee the thread safety of the ArrayList, all operations must be done through the wrapper returned by the Synchronized(IList) method.

Enumerar una colección no es intrínsecamente un procedimiento seguro para subprocesos.Enumerating through a collection is intrinsically not a thread-safe procedure. Incluso cuando una colección está sincronizada, otros subprocesos todavía pueden modificarla, lo que hace que el enumerador produzca una excepción.Even when a collection is synchronized, other threads can still modify the collection, which causes the enumerator to throw an exception. Con el fin de garantizar la seguridad para la ejecución de subprocesos durante la enumeración, se puede bloquear la colección durante toda la enumeración o detectar las excepciones resultantes de los cambios realizados por otros subprocesos.To guarantee thread safety during enumeration, you can either lock the collection during the entire enumeration or catch the exceptions resulting from changes made by other threads.

Consulte también: