ArrayList Klasse

Definition

Implementiert die IList-Schnittstelle. Dabei wird ein Array verwendet, dessen Größe je nach Bedarf dynamisch erhöht wird.

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
Vererbung
ArrayList
Abgeleitet
Attribute
Implementiert

Beispiele

Im folgenden Beispiel wird gezeigt, wie Sie eine ArrayList erstellen und initialisieren und wie die zugehörigen Werte angezeigt werden.

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   !

Hinweise

Wichtig

Es wird nicht empfohlen, die ArrayList -Klasse für die Neuentwicklung zu verwenden. Stattdessen wird empfohlen, die generische List<T> Klasse zu verwenden. Die ArrayList -Klasse ist für heterogene Auflistungen von Objekten konzipiert. Es bietet jedoch nicht immer die beste Leistung. Stattdessen wird Folgendes empfohlen:

Es ArrayList ist nicht garantiert, dass sortiert wird. Sie müssen sortieren, indem Sie die ArrayList - Sort Methode aufrufen, bevor Vorgänge (z BinarySearch. B. ) ausgeführt werden, die ArrayList sortiert werden müssen. Um eine Sammlung zu verwalten, die automatisch sortiert wird, wenn neue Elemente hinzugefügt werden, können Sie die SortedSet<T> -Klasse verwenden.

Die Kapazität eines ArrayList ist die Anzahl der Elemente, die enthalten ArrayList sein können. Wenn Elemente zu einer ArrayListhinzugefügt werden, wird die Kapazität automatisch bei Bedarf durch Neuzuordnung erhöht. Die Kapazität kann durch Aufrufen TrimToSize oder explizites Festlegen der Capacity -Eigenschaft verringert werden.

nur .NET Framework: Bei sehr großen ArrayList Objekten können Sie die maximale Kapazität auf 2 Milliarden Elemente in einem 64-Bit-System erhöhen, indem Sie das enabled Attribut des <gcAllowVeryLargeObjects> Konfigurationselements in der Laufzeitumgebung auf true festlegen.

Auf Elemente in dieser Auflistung kann mithilfe eines ganzzahligen Index zugegriffen werden. Indizes in dieser Auflistung sind nullbasiert.

Die ArrayList Auflistung akzeptiert null als gültigen Wert. Außerdem sind doppelte Elemente zulässig.

Die Verwendung mehrdimensionaler Arrays als Elemente in einer ArrayList Auflistung wird nicht unterstützt.

Konstruktoren

ArrayList()

Initialisiert eine neue, leere Instanz der ArrayList-Klasse, die die Standardanfangskapazität aufweist.

ArrayList(ICollection)

Initialisiert eine neue Instanz der ArrayList-Klasse, die aus der angegebenen Auflistung kopierte Elemente enthält und deren anfängliche Kapazität der Anzahl der kopierten Elemente entspricht.

ArrayList(Int32)

Initialisiert eine neue, leere Instanz der ArrayList-Klasse, die die angegebene Anfangskapazität aufweist.

Eigenschaften

Capacity

Ruft die Anzahl der Elemente ab, die die ArrayList enthalten kann, oder legt diese fest.

Count

Ruft die Anzahl der Elemente ab, die tatsächlich in ArrayList enthalten sind.

IsFixedSize

Ruft einen Wert ab, der angibt, ob das ArrayList eine feste Größe aufweist.

IsReadOnly

Ruft einen Wert ab, der angibt, ob das ArrayList schreibgeschützt ist.

IsSynchronized

Ruft einen Wert ab, der angibt, ob der Zugriff auf die ArrayList synchronisiert (threadsicher) ist.

Item[Int32]

Ruft das Element am angegebenen Index ab oder legt dieses fest.

SyncRoot

Ruft ein Objekt ab, mit dem der Zugriff auf ArrayList synchronisiert werden kann.

Methoden

Adapter(IList)

Erstellt einen ArrayList-Wrapper für eine angegebene IList.

Add(Object)

Fügt am Ende der ArrayList ein Objekt hinzu.

AddRange(ICollection)

Fügt die Elemente einer ICollection am Ende der ArrayList hinzu.

BinarySearch(Int32, Int32, Object, IComparer)

Durchsucht mithilfe des angegebenen Vergleichs einen Bereich von Elementen in der sortierten ArrayList nach einem Element und gibt den nullbasierten Index des Elements zurück.

BinarySearch(Object)

Durchsucht mithilfe des Standardcomparers die gesamte sortierte ArrayList nach einem Element und gibt den nullbasierten Index des Elements zurück.

BinarySearch(Object, IComparer)

Durchsucht mithilfe des angegebenen Comparers die gesamte sortierte ArrayList nach einem Element und gibt den nullbasierten Index des Elements zurück.

Clear()

Entfernt alle Elemente aus der ArrayList.

Clone()

Erstellt eine flache Kopie von ArrayList.

Contains(Object)

Bestimmt, ob sich ein Element in ArrayList befindet.

CopyTo(Array)

Kopiert die gesamte ArrayList in ein kompatibles eindimensionales Array, wobei am Anfang des Zielarrays begonnen wird.

CopyTo(Array, Int32)

Kopiert die gesamte ArrayList-Instanz in ein kompatibles eindimensionales Array, beginnend am angegebenen Index des Zielarrays.

CopyTo(Int32, Array, Int32, Int32)

Kopiert einen Bereich von Elementen aus der ArrayList in ein kompatibles eindimensionales Array, beginnend ab dem angegebenen Index im Zielarray.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
FixedSize(ArrayList)

Gibt einen ArrayList-Wrapper mit fester Größe zurück.

FixedSize(IList)

Gibt einen IList-Wrapper mit fester Größe zurück.

GetEnumerator()

Gibt einen Enumerator für die gesamte ArrayList zurück.

GetEnumerator(Int32, Int32)

Gibt einen Enumerator für einen Bereich von Elementen in der ArrayList zurück.

GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetRange(Int32, Int32)

Gibt eine ArrayList zurück, die eine Teilgruppe der Elemente aus der Quell-ArrayList darstellt.

GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
IndexOf(Object)

Sucht nach dem angegebenen Object und gibt den nullbasierten Index des ersten Vorkommens innerhalb der gesamten ArrayList zurück.

IndexOf(Object, Int32)

Sucht nach dem angegebenen Object und gibt den nullbasierten Index des ersten Vorkommens innerhalb des Bereichs von Elementen in der ArrayList zurück, der sich vom angegebenen Index bis zum letzten Element erstreckt.

IndexOf(Object, Int32, Int32)

Sucht nach dem angegebenen Object und gibt den nullbasierten Index des ersten Vorkommens innerhalb des Bereichs von Elementen in der ArrayList zurück, der am angegebenen Index beginnt und die angegebene Anzahl von Elementen enthält.

Insert(Int32, Object)

Fügt am angegebenen Index ein Element in die ArrayList ein.

InsertRange(Int32, ICollection)

Fügt die Elemente einer Auflistung am angegebenen Index in die ArrayList ein.

LastIndexOf(Object)

Sucht nach dem angegebenen Object und gibt den nullbasierten Index des letzten Vorkommens innerhalb der gesamten ArrayList zurück.

LastIndexOf(Object, Int32)

Sucht nach dem angegebenen Object und gibt den nullbasierten Index des letzten Vorkommens innerhalb des Bereichs von Elementen in der ArrayList zurück, der sich vom ersten Element bis zum angegebenen Index erstreckt.

LastIndexOf(Object, Int32, Int32)

Sucht nach dem angegebenen Object und gibt den nullbasierten Index des letzten Vorkommens innerhalb des Bereichs von Elementen in der ArrayList zurück, der die angegebene Anzahl von Elementen enthält und am angegebenen Index endet.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ReadOnly(ArrayList)

Gibt einen schreibgeschützten ArrayList-Wrapper zurück.

ReadOnly(IList)

Gibt einen schreibgeschützten IList-Wrapper zurück.

Remove(Object)

Entfernt das erste Vorkommen eines angegebenen Objekts aus der ArrayList.

RemoveAt(Int32)

Entfernt das Element am angegebenen Index aus der ArrayList.

RemoveRange(Int32, Int32)

Entfernt einen Bereich von Elementen aus der ArrayList.

Repeat(Object, Int32)

Gibt eine ArrayList zurück, deren Elemente Kopien des angegebenen Werts sind.

Reverse()

Kehrt die Reihenfolge der Elemente in der gesamten ArrayList um.

Reverse(Int32, Int32)

Kehrt die Reihenfolge der Elemente im angegebenen Bereich um.

SetRange(Int32, ICollection)

Kopiert die Elemente einer Auflistung über einen Bereich von Elementen in der ArrayList.

Sort()

Sortiert die Elemente in der gesamten ArrayList.

Sort(IComparer)

Sortiert die Elemente in der gesamten ArrayList mithilfe des angegebenen Comparers.

Sort(Int32, Int32, IComparer)

Sortiert die Elemente in einem Bereich von Elementen in der ArrayList mithilfe des angegebenen Vergleichs.

Synchronized(ArrayList)

Gibt einen synchronisierten (threadsicheren) ArrayList-Wrapper zurück.

Synchronized(IList)

Gibt einen synchronisierten (threadsicheren) IList-Wrapper zurück.

ToArray()

Kopiert die Elemente der ArrayList in ein neues Object-Array.

ToArray(Type)

Kopiert die Elemente der ArrayList in ein neues Array vom angegebenen Elementtyp.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)
TrimToSize()

Legt die Kapazität auf die Anzahl der tatsächlich in der ArrayList enthaltenen Elemente fest.

Erweiterungsmethoden

Cast<TResult>(IEnumerable)

Wandelt die Elemente eines IEnumerable in den angegebenen Typ um

OfType<TResult>(IEnumerable)

Filtert die Elemente eines IEnumerable anhand eines angegebenen Typs

AsParallel(IEnumerable)

Ermöglicht die Parallelisierung einer Abfrage.

AsQueryable(IEnumerable)

Konvertiert einen IEnumerable in einen IQueryable.

Gilt für:

Threadsicherheit

Öffentliche statische (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Ein ArrayList kann mehrere Reader gleichzeitig unterstützen, solange die Sammlung nicht geändert wird. Um die Threadsicherheit von ArrayListzu gewährleisten, müssen alle Vorgänge über den von der Synchronized(IList) -Methode zurückgegebenen Wrapper erfolgen.

Die Enumeration einer Auflistung ist systemintern keine threadsichere Prozedur. Selbst wenn eine Auflistung synchronisiert wird, besteht die Möglichkeit, dass andere Threads sie ändern. Dies führt dazu, dass der Enumerator eine Ausnahme auslöst. Um während der Enumeration Threadsicherheit zu gewährleisten, können Sie entweder die Auflistung während der gesamten Enumeration sperren oder die Ausnahmen, die aus von anderen Threads stammenden Änderungen resultieren, abfangen.

Weitere Informationen