ArrayList Classe

Definizione

Implementa l'interfaccia IList usando una matrice la cui dimensione viene incrementata in modo dinamico in base alle esigenze.

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
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ArrayList = class
    interface IList
    interface ICloneable
    interface ICollection
    interface IEnumerable
Public Class ArrayList
Implements IList
Public Class ArrayList
Implements ICloneable, IList
Ereditarietà
ArrayList
Derivato
Attributi
Implementazioni

Esempio

Nell'esempio seguente viene illustrato come creare e inizializzare un oggetto ArrayList e come visualizzarne i valori.

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   !

Commenti

Importante

Non è consigliabile usare la classe per il ArrayList nuovo sviluppo. È invece consigliabile usare la classe generica List<T> . La ArrayList classe è progettata per contenere raccolte eterogenee di oggetti. Tuttavia, non offre sempre le migliori prestazioni. È invece consigliabile:

  • Per una raccolta eterogenea di oggetti, utilizzare il List<Object> tipo (in C#) o List(Of Object) (in Visual Basic).
  • Per una raccolta omogenea di oggetti, utilizzare la List<T> classe .
    Vedere Considerazioni sulle prestazioni nell'argomento List<T> di riferimento per una descrizione delle prestazioni relative di queste classi. Vedere Raccolte non generiche non devono essere usate in GitHub per informazioni generali sull'uso di tipi di raccolta generici anziché non generici.

Non è garantito l'ordinamento ArrayList di . È necessario ordinare l'oggetto ArrayList chiamando il relativo Sort metodo prima di eseguire operazioni (ad esempio BinarySearch) che richiedono l'ordinamento ArrayList di . Per mantenere una raccolta ordinata automaticamente quando vengono aggiunti nuovi elementi, è possibile usare la SortedSet<T> classe .

La capacità di un ArrayList oggetto è il numero di elementi che può ArrayList contenere. Man mano che gli elementi vengono aggiunti a un ArrayListoggetto , la capacità viene aumentata automaticamente in base alle esigenze tramite la riallocazione. La capacità può essere ridotta chiamando TrimToSize o impostando la Capacity proprietà in modo esplicito.

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

È possibile accedere a elementi di questa raccolta usando un indice integer. Gli indici in questa raccolta sono in base zero.

La ArrayList raccolta accetta null come valore valido. Consente anche elementi duplicati.

L'uso di matrici multidimensionali come elementi in una ArrayList raccolta non è supportato.

Costruttori

ArrayList()

Inizializza una nuova istanza della classe ArrayList vuota e con capacità iniziale predefinita.

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.

ArrayList(Int32)

Inizializza una nuova istanza della classe ArrayList vuota e con capacità iniziale specificata.

Proprietà

Capacity

Ottiene o imposta il numero di elementi che ArrayList può contenere.

Count

Ottiene il numero di elementi effettivamente contenuti nell'oggetto ArrayList.

IsFixedSize

Ottiene un valore che indica se ArrayList ha dimensioni fisse.

IsReadOnly

Ottiene un valore che indica se ArrayList è di sola lettura.

IsSynchronized

Ottiene un valore che indica se l'accesso a ArrayList è sincronizzato (thread-safe).

Item[Int32]

Ottiene o imposta l'elemento in corrispondenza dell'indice specificato.

SyncRoot

Ottiene un oggetto che può essere usato per sincronizzare l'accesso a ArrayList.

Metodi

Adapter(IList)

Crea un wrapper ArrayList per un oggetto IList specifico.

Add(Object)

Aggiunge un oggetto alla fine di ArrayList.

AddRange(ICollection)

Aggiunge gli elementi di un oggetto ICollection alla fine di ArrayList.

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.

BinarySearch(Object)

Cerca un elemento nell'intero ArrayList ordinato usando l'operatore di confronto predefinito e restituisce l'indice in base zero dell'elemento.

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.

Clear()

Rimuove tutti gli elementi da ArrayList.

Clone()

Crea una copia superficiale di ArrayList.

Contains(Object)

Determina se un elemento è incluso in ArrayList.

CopyTo(Array)

Copia l'intero oggetto ArrayList in un oggetto Array unidimensionale compatibile, a partire dall'inizio della matrice di destinazione.

CopyTo(Array, Int32)

Copia l'intero oggetto ArrayList in un oggetto Array compatibile unidimensionale, a partire dall'indice specificato della matrice di destinazione.

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.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
FixedSize(ArrayList)

Restituisce un wrapper ArrayList di dimensioni fisse.

FixedSize(IList)

Restituisce un wrapper IList di dimensioni fisse.

GetEnumerator()

Restituisce un enumeratore per l'intero ArrayList.

GetEnumerator(Int32, Int32)

Restituisce un enumeratore per un intervallo di elementi nell'oggetto ArrayList.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetRange(Int32, Int32)

Restituisce ArrayList che rappresenta un subset di elementi nell'oggetto ArrayList di origine.

GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
IndexOf(Object)

Cerca l'oggetto Object specificato e restituisce l'indice in base zero della prima occorrenza all'interno dell'intero ArrayList.

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.

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.

Insert(Int32, Object)

Inserisce un elemento in ArrayList in corrispondenza dell'indice specificato.

InsertRange(Int32, ICollection)

Inserisce gli elementi di una raccolta in ArrayList in corrispondenza dell'indice specificato.

LastIndexOf(Object)

Cerca l'oggetto Object specificato e restituisce l'indice in base zero dell'ultima occorrenza all'interno dell'insieme ArrayList.

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.

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.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ReadOnly(ArrayList)

Restituisce un wrapper ArrayList di sola lettura.

ReadOnly(IList)

Restituisce un wrapper IList di sola lettura.

Remove(Object)

Rimuove la prima occorrenza di un oggetto specifico da ArrayList.

RemoveAt(Int32)

Rimuove l'elemento in corrispondenza dell'indice specificato di ArrayList.

RemoveRange(Int32, Int32)

Rimuove un intervallo di elementi da ArrayList.

Repeat(Object, Int32)

Restituisce un ArrayList i cui elementi sono copie del valore specificato.

Reverse()

Inverte l'ordine degli elementi nell'intero ArrayList.

Reverse(Int32, Int32)

Inverte l'ordine degli elementi nell'intervallo specificato.

SetRange(Int32, ICollection)

Copia gli elementi di una raccolta in un intervallo di elementi nell'oggetto ArrayList.

Sort()

Ordina gli elementi dell'intero oggetto ArrayList.

Sort(IComparer)

Ordina gli elementi dell'intero ArrayList usando l'operatore di confronto specificato.

Sort(Int32, Int32, IComparer)

Ordina gli elementi di un intervallo di elementi di ArrayList usando l'operatore di confronto specificato.

Synchronized(ArrayList)

Restituisce un wrapper ArrayList sincronizzato (thread-safe).

Synchronized(IList)

Restituisce un wrapper IList sincronizzato (thread-safe).

ToArray()

Copia gli elementi di ArrayList in una nuova matrice Object.

ToArray(Type)

Copia gli elementi di ArrayList in una nuova matrice del tipo di elemento specificato.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)
TrimToSize()

Imposta la capacità sul numero effettivo di elementi contenuti in ArrayList.

Metodi di estensione

Cast<TResult>(IEnumerable)

Esegue il cast degli elementi di un oggetto IEnumerable nel tipo specificato.

OfType<TResult>(IEnumerable)

Filtra gli elementi di un oggetto IEnumerable in base a un tipo specificato.

AsParallel(IEnumerable)

Consente la parallelizzazione di una query.

AsQueryable(IEnumerable)

Converte un oggetto IEnumerable in un oggetto IQueryable.

Si applica a

Thread safety

I membri statici pubblici (Shared in Visual Basic) di questo tipo sono thread-safe. Non è invece garantita la sicurezza dei membri dell'istanza.

Un ArrayList oggetto può supportare più lettori contemporaneamente, purché la raccolta non venga modificata. Per garantire la thread safety di ArrayList, tutte le operazioni devono essere eseguite tramite il wrapper restituito dal Synchronized(IList) metodo .

L'enumerazione di una raccolta non è di per sé una procedura thread-safe. Anche se una raccolta è sincronizzata, è possibile che venga modificata da altri thread, con conseguente generazione di un'eccezione da parte dell'enumeratore. 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.

Vedi anche