ArrayList ArrayList ArrayList ArrayList Class

Definizione

Implementa l'interfaccia IList usando una matrice la cui dimensione viene incrementata in modo dinamico in base alle esigenze.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
Ereditarietà
ArrayListArrayListArrayListArrayList
Derivato
Attributi
Implementazioni

Esempi

Nell'esempio seguente viene illustrato come creare e inizializzare ArrayList un oggetto e come visualizzarne i valori.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 'PrintValues

End Class


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

Commenti

Importante

Non è consigliabile usare la ArrayList classe per nuove attività di sviluppo.We don't recommend that you use the ArrayList class for new development. È invece consigliabile usare la classe generica List<T> .Instead, we recommend that you use the generic List<T> class. La ArrayList classe è progettata per mantenere raccolte eterogenee di oggetti.The ArrayList class is designed to hold heterogeneous collections of objects. Tuttavia, non sempre offre le migliori prestazioni.However, it does not always offer the best performance. È invece consigliabile eseguire le operazioni seguenti:Instead, we recommend the following:

  • Per una raccolta eterogenea di oggetti, usare List<Object> il tipo C#(in List(Of Object) ) o (in Visual Basic).For a heterogeneous collection of objects, use the List<Object> (in C#) or List(Of Object) (in Visual Basic) type.
  • Per una raccolta omogenea di oggetti, usare la List<T> classe.For a homogeneous collection of objects, use the List<T> class.
    Per informazioni sulle prestazioni relative List<T> di queste classi, vedere considerazioni sulle prestazioni nell'argomento di riferimento.See Performance Considerations in the List<T> reference topic for a discussion of the relative performance of these classes. Vedere le raccolte non generiche non devono essere usate in GitHub per informazioni generali sull'uso di tipi di raccolta generici anziché non generici.See Non-generic collections shouldn't be used on GitHub for general information on the use of generic instead of non-generic collection types.

L' ArrayList ordinamento di non è garantito.The ArrayList is not guaranteed to be sorted. È necessario ordinare la ArrayList classe chiamando il Sort relativo metodo prima di BinarySearcheseguire operazioni, ad esempio, che richiedono ArrayList l'ordinamento dell'oggetto.You must sort the ArrayList by calling its Sort method prior to performing operations (such as BinarySearch) that require the ArrayList to be sorted. Per gestire una raccolta che viene automaticamente ordinata quando vengono aggiunti nuovi elementi, è possibile usare SortedSet<T> la classe.To maintain a collection that is automatically sorted as new elements are added, you can use the SortedSet<T> class.

La capacità di un ArrayList oggetto è il numero di ArrayList elementi che può essere in attesa.The capacity of an ArrayList is the number of elements the ArrayList can hold. Quando gli elementi vengono aggiunti a ArrayListun oggetto, la capacità viene aumentata automaticamente secondo necessità tramite la riallocazione.As elements are added to an ArrayList, the capacity is automatically increased as required through reallocation. La capacità può essere ridotta TrimToSize chiamando o impostando la Capacity proprietà in modo esplicito.The capacity can be decreased by calling TrimToSize or by setting the Capacity property explicitly.

Solo .NET Framework: Per gli oggetti ArrayList di grandi dimensioni, è possibile aumentare la capacità massima di 2 miliardi elementi in un sistema a 64 bit impostando l' enabled attributo <gcAllowVeryLargeObjects> true dell'elemento di configurazione su nell'ambiente di Runtime..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.

È possibile accedere agli elementi di questa raccolta usando un indice Integer.Elements in this collection can be accessed using an integer index. Gli indici in questa raccolta sono in base zero.Indexes in this collection are zero-based.

La ArrayList raccolta accetta null come valore valido.The ArrayList collection accepts null as a valid value. Consente anche elementi duplicati.It also allows duplicate elements.

L'utilizzo di matrici multidimensionali come elementi in una ArrayList raccolta non è supportato.Using multidimensional arrays as elements in an ArrayList collection is not supported.

Costruttori

ArrayList() ArrayList() ArrayList() ArrayList()

Inizializza una nuova istanza della classe ArrayList vuota e con capacità iniziale predefinita.Initializes a new instance of the ArrayList class that is empty and has the default initial capacity.

ArrayList(ICollection) ArrayList(ICollection) ArrayList(ICollection) ArrayList(ICollection)

Inizializza una nuova istanza della classe ArrayList che contiene gli elementi copiati dalla raccolta specificata e ha la stessa capacità iniziale definita dal numero degli elementi copiati.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) ArrayList(Int32) ArrayList(Int32) ArrayList(Int32)

Inizializza una nuova istanza della classe ArrayList vuota e con capacità iniziale specificata.Initializes a new instance of the ArrayList class that is empty and has the specified initial capacity.

Proprietà

Capacity Capacity Capacity Capacity

Ottiene o imposta il numero di elementi che ArrayList può contenere.Gets or sets the number of elements that the ArrayList can contain.

Count Count Count Count

Ottiene il numero di elementi effettivamente contenuti nell'oggetto ArrayList.Gets the number of elements actually contained in the ArrayList.

IsFixedSize IsFixedSize IsFixedSize IsFixedSize

Ottiene un valore che indica se ArrayList ha dimensioni fisse.Gets a value indicating whether the ArrayList has a fixed size.

IsReadOnly IsReadOnly IsReadOnly IsReadOnly

Ottiene un valore che indica se ArrayList è di sola lettura.Gets a value indicating whether the ArrayList is read-only.

IsSynchronized IsSynchronized IsSynchronized IsSynchronized

Ottiene un valore che indica se l'accesso a ArrayList è sincronizzato (thread-safe).Gets a value indicating whether access to the ArrayList is synchronized (thread safe).

Item[Int32] Item[Int32] Item[Int32] Item[Int32]

Ottiene o imposta l'elemento in corrispondenza dell'indice specificato.Gets or sets the element at the specified index.

SyncRoot SyncRoot SyncRoot SyncRoot

Ottiene un oggetto che può essere usato per sincronizzare l'accesso a ArrayList.Gets an object that can be used to synchronize access to the ArrayList.

Metodi

Adapter(IList) Adapter(IList) Adapter(IList) Adapter(IList)

Crea un wrapper ArrayList per un oggetto IList specifico.Creates an ArrayList wrapper for a specific IList.

Add(Object) Add(Object) Add(Object) Add(Object)

Aggiunge un oggetto alla fine di ArrayList.Adds an object to the end of the ArrayList.

AddRange(ICollection) AddRange(ICollection) AddRange(ICollection) AddRange(ICollection)

Aggiunge gli elementi di un oggetto ICollection alla fine di ArrayList.Adds the elements of an ICollection to the end of the ArrayList.

BinarySearch(Int32, Int32, Object, IComparer) BinarySearch(Int32, Int32, Object, IComparer) BinarySearch(Int32, Int32, Object, IComparer) BinarySearch(Int32, Int32, Object, IComparer)

Cerca un elemento in un intervallo di elementi nell'oggetto ArrayList ordinato usando l'operatore di confronto specificato e restituisce l'indice in base zero dell'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) BinarySearch(Object) BinarySearch(Object) BinarySearch(Object)

Cerca un elemento nell'intero ArrayList ordinato usando l'operatore di confronto predefinito e restituisce l'indice in base zero dell'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) BinarySearch(Object, IComparer) BinarySearch(Object, IComparer) BinarySearch(Object, IComparer)

Cerca un elemento nell'intero ArrayList ordinato usando l'operatore di confronto specificato e restituisce l'indice in base zero dell'elemento.Searches the entire sorted ArrayList for an element using the specified comparer and returns the zero-based index of the element.

Clear() Clear() Clear() Clear()

Rimuove tutti gli elementi da ArrayList.Removes all elements from the ArrayList.

Clone() Clone() Clone() Clone()

Crea una copia superficiale di ArrayList.Creates a shallow copy of the ArrayList.

Contains(Object) Contains(Object) Contains(Object) Contains(Object)

Determina se un elemento è incluso in ArrayList.Determines whether an element is in the ArrayList.

CopyTo(Array) CopyTo(Array) CopyTo(Array) CopyTo(Array)

Copia l'intero oggetto ArrayList in un oggetto Array unidimensionale compatibile, a partire dall'inizio della matrice di destinazione.Copies the entire ArrayList to a compatible one-dimensional Array, starting at the beginning of the target array.

CopyTo(Array, Int32) CopyTo(Array, Int32) CopyTo(Array, Int32) CopyTo(Array, Int32)

Copia l'intero oggetto ArrayList in un oggetto Array compatibile unidimensionale, a partire dall'indice specificato della matrice di destinazione.Copies the entire ArrayList to a compatible one-dimensional Array, starting at the specified index of the target array.

CopyTo(Int32, Array, Int32, Int32) CopyTo(Int32, Array, Int32, Int32) CopyTo(Int32, Array, Int32, Int32) CopyTo(Int32, Array, Int32, Int32)

Copia una serie di elementi da ArrayList in un oggetto Array compatibile unidimensionale, a partire dall'indice specificato della matrice di destinazione.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) Equals(Object) Equals(Object) Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Inherited from Object)
FixedSize(ArrayList) FixedSize(ArrayList) FixedSize(ArrayList) FixedSize(ArrayList)

Restituisce un wrapper ArrayList di dimensioni fisse.Returns an ArrayList wrapper with a fixed size.

FixedSize(IList) FixedSize(IList) FixedSize(IList) FixedSize(IList)

Restituisce un wrapper IList di dimensioni fisse.Returns an IList wrapper with a fixed size.

GetEnumerator() GetEnumerator() GetEnumerator() GetEnumerator()

Restituisce un enumeratore per l'intero ArrayList.Returns an enumerator for the entire ArrayList.

GetEnumerator(Int32, Int32) GetEnumerator(Int32, Int32) GetEnumerator(Int32, Int32) GetEnumerator(Int32, Int32)

Restituisce un enumeratore per un intervallo di elementi nell'oggetto ArrayList.Returns an enumerator for a range of elements in the ArrayList.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Inherited from Object)
GetRange(Int32, Int32) GetRange(Int32, Int32) GetRange(Int32, Int32) GetRange(Int32, Int32)

Restituisce ArrayList che rappresenta un subset di elementi nell'oggetto ArrayList di origine.Returns an ArrayList which represents a subset of the elements in the source ArrayList.

GetType() GetType() GetType() GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Inherited from Object)
IndexOf(Object) IndexOf(Object) IndexOf(Object) IndexOf(Object)

Cerca l'oggetto Object specificato e restituisce l'indice in base zero della prima occorrenza all'interno dell'intero ArrayList.Searches for the specified Object and returns the zero-based index of the first occurrence within the entire ArrayList.

IndexOf(Object, Int32) IndexOf(Object, Int32) IndexOf(Object, Int32) IndexOf(Object, Int32)

Cerca l'oggetto Object specificato e restituisce l'indice in base zero della prima occorrenza all'interno dell'intervallo di elementi dell'oggetto ArrayList compreso tra l'indice specificato e l'ultimo 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) IndexOf(Object, Int32, Int32) IndexOf(Object, Int32, Int32) IndexOf(Object, Int32, Int32)

Cerca l'oggetto Object specificato e restituisce l'indice in base zero della prima occorrenza all'interno dell'intervallo di elementi nell'oggetto ArrayList che inizia in corrispondenza dell'indice specificato e contiene il numero specificato di elementi.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) Insert(Int32, Object) Insert(Int32, Object) Insert(Int32, Object)

Inserisce un elemento in ArrayList in corrispondenza dell'indice specificato.Inserts an element into the ArrayList at the specified index.

InsertRange(Int32, ICollection) InsertRange(Int32, ICollection) InsertRange(Int32, ICollection) InsertRange(Int32, ICollection)

Inserisce gli elementi di una raccolta in ArrayList in corrispondenza dell'indice specificato.Inserts the elements of a collection into the ArrayList at the specified index.

LastIndexOf(Object) LastIndexOf(Object) LastIndexOf(Object) LastIndexOf(Object)

Cerca l'oggetto Object specificato e restituisce l'indice in base zero dell'ultima occorrenza all'interno dell'insieme ArrayList.Searches for the specified Object and returns the zero-based index of the last occurrence within the entire ArrayList.

LastIndexOf(Object, Int32) LastIndexOf(Object, Int32) LastIndexOf(Object, Int32) LastIndexOf(Object, Int32)

Cerca l'oggetto specificato Object e restituisce l'indice in base zero dell'ultima occorrenza all'interno dell'intervallo di elementi nella classe ArrayList che è compresa tra il primo elemento e l'indice specificato.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) LastIndexOf(Object, Int32, Int32) LastIndexOf(Object, Int32, Int32) LastIndexOf(Object, Int32, Int32)

Cerca l'oggetto Object specificato e restituisce l'indice in base zero dell'ultima occorrenza all'interno dell'intervallo di elementi della classe ArrayList che contiene il numero specificato di elementi e termina in corrispondenza dell'indice specificato.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() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Inherited from Object)
ReadOnly(ArrayList) ReadOnly(ArrayList) ReadOnly(ArrayList) ReadOnly(ArrayList)

Restituisce un wrapper ArrayList di sola lettura.Returns a read-only ArrayList wrapper.

ReadOnly(IList) ReadOnly(IList) ReadOnly(IList) ReadOnly(IList)

Restituisce un wrapper IList di sola lettura.Returns a read-only IList wrapper.

Remove(Object) Remove(Object) Remove(Object) Remove(Object)

Rimuove la prima occorrenza di un oggetto specifico da ArrayList.Removes the first occurrence of a specific object from the ArrayList.

RemoveAt(Int32) RemoveAt(Int32) RemoveAt(Int32) RemoveAt(Int32)

Rimuove l'elemento in corrispondenza dell'indice specificato di ArrayList.Removes the element at the specified index of the ArrayList.

RemoveRange(Int32, Int32) RemoveRange(Int32, Int32) RemoveRange(Int32, Int32) RemoveRange(Int32, Int32)

Rimuove un intervallo di elementi da ArrayList.Removes a range of elements from the ArrayList.

Repeat(Object, Int32) Repeat(Object, Int32) Repeat(Object, Int32) Repeat(Object, Int32)

Restituisce un ArrayList i cui elementi sono copie del valore specificato.Returns an ArrayList whose elements are copies of the specified value.

Reverse() Reverse() Reverse() Reverse()

Inverte l'ordine degli elementi nell'intero ArrayList.Reverses the order of the elements in the entire ArrayList.

Reverse(Int32, Int32) Reverse(Int32, Int32) Reverse(Int32, Int32) Reverse(Int32, Int32)

Inverte l'ordine degli elementi nell'intervallo specificato.Reverses the order of the elements in the specified range.

SetRange(Int32, ICollection) SetRange(Int32, ICollection) SetRange(Int32, ICollection) SetRange(Int32, ICollection)

Copia gli elementi di una raccolta in un intervallo di elementi nell'oggetto ArrayList.Copies the elements of a collection over a range of elements in the ArrayList.

Sort() Sort() Sort() Sort()

Ordina gli elementi dell'intero oggetto ArrayList.Sorts the elements in the entire ArrayList.

Sort(IComparer) Sort(IComparer) Sort(IComparer) Sort(IComparer)

Ordina gli elementi dell'intero ArrayList usando l'operatore di confronto specificato.Sorts the elements in the entire ArrayList using the specified comparer.

Sort(Int32, Int32, IComparer) Sort(Int32, Int32, IComparer) Sort(Int32, Int32, IComparer) Sort(Int32, Int32, IComparer)

Ordina gli elementi di un intervallo di elementi di ArrayList usando l'operatore di confronto specificato.Sorts the elements in a range of elements in ArrayList using the specified comparer.

Synchronized(ArrayList) Synchronized(ArrayList) Synchronized(ArrayList) Synchronized(ArrayList)

Restituisce un wrapper ArrayList sincronizzato (thread-safe).Returns an ArrayList wrapper that is synchronized (thread safe).

Synchronized(IList) Synchronized(IList) Synchronized(IList) Synchronized(IList)

Restituisce un wrapper IList sincronizzato (thread-safe).Returns an IList wrapper that is synchronized (thread safe).

ToArray() ToArray() ToArray() ToArray()

Copia gli elementi di ArrayList in una nuova matrice Object.Copies the elements of the ArrayList to a new Object array.

ToArray(Type) ToArray(Type) ToArray(Type) ToArray(Type)

Copia gli elementi di ArrayList in una nuova matrice del tipo di elemento specificato.Copies the elements of the ArrayList to a new array of the specified element type.

ToString() ToString() ToString() ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Inherited from Object)
TrimToSize() TrimToSize() TrimToSize() TrimToSize()

Imposta la capacità sul numero effettivo di elementi contenuti in ArrayList.Sets the capacity to the actual number of elements in the ArrayList.

Metodi di estensione

Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable)

Esegue il cast degli elementi di un oggetto IEnumerable nel tipo specificato.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable)

Filtra gli elementi di un oggetto IEnumerable in base a un tipo specificato.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable)

Consente la parallelizzazione di una query.Enables parallelization of a query.

AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable)

Converte un oggetto IEnumerable in un oggetto IQueryable.Converts an IEnumerable to an IQueryable.

Si applica a

Thread safety

I membri staticiShared pubblici (in Visual Basic) di questo tipo sono thread-safe.Public static (Shared in Visual Basic) members of this type are thread safe. I membri di istanza non sono garantiti come thread-safe.Any instance members are not guaranteed to be thread safe.

Un ArrayList può supportare più lettori contemporaneamente, purché la raccolta non venga modificata.An ArrayList can support multiple readers concurrently, as long as the collection is not modified. Per garantire la thread safety di ArrayList, tutte le operazioni devono essere eseguite tramite il wrapper restituito Synchronized(IList) dal metodo.To guarantee the thread safety of the ArrayList, all operations must be done through the wrapper returned by the Synchronized(IList) method.

L'enumerazione di una raccolta non è di per sé una procedura thread-safe.Enumerating through a collection is intrinsically not a thread-safe procedure. Anche se una raccolta è sincronizzata, è possibile che venga modificata da altri thread, con conseguente generazione di un'eccezione da parte dell'enumeratore.Even when a collection is synchronized, other threads can still modify the collection, which causes the enumerator to throw an exception. Per garantire la protezione dei thread durante l'enumerazione, è possibile bloccare la raccolta per l'intera enumerazione oppure intercettare le eccezioni determinate dalle modifiche apportate da altri thread.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.

Vedi anche