Freigeben über


ArrayList Klasse

Definition

Implementiert die IList Schnittstelle mithilfe eines Arrays, dessen Größe bei 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

Das folgende Beispiel zeigt, wie Sie eine ArrayList und ihre Werte erstellen und initialisieren.

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

Von Bedeutung

Es wird nicht empfohlen, die ArrayList Klasse für die neue Entwicklung zu verwenden. Stattdessen wird empfohlen, die generische List<T> Klasse zu verwenden. Die ArrayList Klasse soll heterogene Auflistungen von Objekten enthalten. Es bietet jedoch nicht immer die beste Leistung. Stattdessen empfehlen wir Folgendes:

  • Verwenden Sie für eine heterogene Auflistung von Objekten den List<Object> Typ (in C#) oder List(Of Object) (in Visual Basic).
  • Verwenden Sie für eine homogene Auflistung von Objekten die List<T> Klasse. Eine Erläuterung der relativen Leistung dieser Klassen finden Sie unter Leistungsüberlegungen im List<T> Referenzthema. Allgemeine Informationen zur Verwendung von generischen Auflistungen anstelle von nicht generischen Sammlungstypen sollten auf GitHub nicht verwendet werden.

Es ist nicht garantiert, dass ArrayList sortiert ist. Sie müssen die ArrayList Methode sortieren, indem Sie die Sort Methode vor dem Ausführen von Vorgängen (z BinarySearch. B. ) aufrufen, die die ArrayList Sortierung erfordern. Um eine Auflistung beizubehalten, die automatisch nach neuen Elementen sortiert wird, können Sie die SortedSet<T> Klasse verwenden.

Die Kapazität eines Elements ArrayList ist die Anzahl der Elemente, die aufbewahrt ArrayList werden können. Wenn Elemente zu einem ArrayListElement hinzugefügt werden, wird die Kapazität bei Bedarf durch Umschichtung automatisch 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 auf einem 64-Bit-System erhöhen, indem Sie das enabled Attribut des <gcAllowVeryLargeObjects> Konfigurationselements true in der Laufzeitumgebung 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. Es ermöglicht auch doppelte Elemente.

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

Konstruktoren

Name Beschreibung
ArrayList()

Initialisiert eine neue Instanz der Klasse, die ArrayList leer ist und über die Standardkapazität verfügt.

ArrayList(ICollection)

Initialisiert eine neue Instanz der ArrayList Klasse, die Elemente enthält, die aus der angegebenen Auflistung kopiert wurden und die gleiche Anfangskapazität wie die Anzahl der kopierten Elemente aufweist.

ArrayList(Int32)

Initialisiert eine neue Instanz der Klasse, die ArrayList leer ist und über die angegebene Anfangskapazität verfügt.

Eigenschaften

Name Beschreibung
Capacity

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

Count

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

IsFixedSize

Ruft einen Wert ab, der angibt, ob die ArrayList Größe fest ist.

IsReadOnly

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

IsSynchronized

Ruft einen Wert ab, der angibt, ob der Zugriff auf die ArrayList Synchronisierung (Threadsicher) erfolgt.

Item[Int32]

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

SyncRoot

Ruft ein Objekt ab, das zum Synchronisieren des Zugriffs auf die ArrayListverwendet werden kann.

Methoden

Name Beschreibung
Adapter(IList)

Erstellt einen ArrayList Wrapper für einen bestimmten IList.

Add(Object)

Fügt ein Objekt am Ende der .ArrayList

AddRange(ICollection)

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

BinarySearch(Int32, Int32, Object, IComparer)

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

BinarySearch(Object, IComparer)

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

BinarySearch(Object)

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

Clear()

Entfernt alle Elemente aus dem ArrayList.

Clone()

Erstellt eine flache Kopie der .ArrayList

Contains(Object)

Bestimmt, ob sich ein Element in der ArrayList.

CopyTo(Array, Int32)

Kopiert das Gesamte ArrayList in einen kompatiblen eindimensionalen Array, beginnend am angegebenen Index des Zielarrays.

CopyTo(Array)

Kopiert das Gesamte ArrayList in ein kompatibles eindimensionales Array, beginnend am Anfang des Zielarrays.

CopyTo(Int32, Array, Int32, Int32)

Kopiert einen Bereich von Elementen von der ArrayList zu einem kompatiblen eindimensionalen ArrayElement, beginnend mit dem angegebenen Index des Zielarrays.

Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(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 den gesamten ArrayListWert zurück.

GetEnumerator(Int32, Int32)

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

GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetRange(Int32, Int32)

Gibt einen ArrayList Wert zurück, der eine Teilmenge der Elemente in der Quelle ArrayListdarstellt.

GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
IndexOf(Object, Int32, Int32)

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

IndexOf(Object, Int32)

Sucht nach dem angegebenen Object Und gibt den nullbasierten Index des ersten Vorkommens innerhalb des Bereichs der Elemente in der, die ArrayList sich vom angegebenen Index bis zum letzten Element erstreckt.

IndexOf(Object)

Sucht nach dem angegebenen Object Und gibt den nullbasierten Index des ersten Vorkommens innerhalb des gesamten ArrayListzurück.

Insert(Int32, Object)

Fügt ein Element in den ArrayList angegebenen Index ein.

InsertRange(Int32, ICollection)

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

LastIndexOf(Object, Int32, Int32)

Sucht nach dem angegebenen Und Object gibt den nullbasierten Index des letzten Vorkommens innerhalb des Bereichs der Elemente in der ArrayList angegebenen Anzahl von Elementen zurück und endet am angegebenen Index.

LastIndexOf(Object, Int32)

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

LastIndexOf(Object)

Sucht nach dem angegebenen Und Object gibt den nullbasierten Index des letzten Vorkommens innerhalb des gesamten ArrayListzurück.

MemberwiseClone()

Erstellt eine flache Kopie der 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 bestimmten Objekts aus dem ArrayList.

RemoveAt(Int32)

Entfernt das Element am angegebenen Index der ArrayList.

RemoveRange(Int32, Int32)

Entfernt einen Bereich von Elementen aus dem ArrayList.

Repeat(Object, Int32)

Gibt einen ArrayList Wert zurück, dessen Elemente Kopien des angegebenen Werts sind.

Reverse()

Umkehrt die Reihenfolge der Elemente in der gesamten ArrayList.

Reverse(Int32, Int32)

Umkehrt die Reihenfolge der Elemente im angegebenen Bereich.

SetRange(Int32, ICollection)

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

Sort()

Sortiert die Elemente im gesamten ArrayList.

Sort(IComparer)

Sortiert die Elemente im gesamten ArrayList Element mithilfe des angegebenen Vergleichs.

Sort(Int32, Int32, IComparer)

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

Synchronized(ArrayList)

Gibt einen ArrayList Wrapper zurück, der synchronisiert wird (threadsicher).

Synchronized(IList)

Gibt einen IList Wrapper zurück, der synchronisiert wird (threadsicher).

ToArray()

Kopiert die Elemente des Elements in ArrayList ein neues Object Array.

ToArray(Type)

Kopiert die Elemente des ArrayList Elements in ein neues Array des angegebenen Elementtyps.

ToString()

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

(Geerbt von Object)
TrimToSize()

Legt die Kapazität auf die tatsächliche Anzahl der Elemente in der ArrayList.

Erweiterungsmethoden

Name Beschreibung
AsParallel(IEnumerable)

Aktiviert die Parallelisierung einer Abfrage.

AsQueryable(IEnumerable)

Wandelt eine IEnumerable in eine IQueryableum.

Cast<TResult>(IEnumerable)

Wandelt die Elemente eines IEnumerable in den angegebenen Typ um.

OfType<TResult>(IEnumerable)

Filtert die Elemente einer IEnumerable basierend auf einem angegebenen Typ.

Gilt für:

Threadsicherheit

Öffentliche statische Elemente (Shared in Visual Basic) dieses Typs sind threadsicher. Instanzenmitglieder sind nicht garantiert threadsicher.

Eine ArrayList kann mehrere Leser gleichzeitig unterstützen, solange die Sammlung nicht geändert wird. Um die Threadsicherheit des Threads ArrayListzu gewährleisten, müssen alle Vorgänge über den wrapper erfolgen, der von der Synchronized(IList) Methode zurückgegeben wird.

Das Aufzählen durch eine Sammlung ist in erster Linie keine threadsichere Prozedur. Selbst wenn eine Auflistung synchronisiert wird, können andere Threads die Auflistung weiterhin ändern, wodurch der Enumerator eine Ausnahme auslöst. Um die Threadsicherheit während der Enumeration zu gewährleisten, können Sie die Auflistung entweder während der gesamten Enumeration sperren oder die Ausnahmen erfassen, die sich aus Änderungen ergeben, die von anderen Threads vorgenommen wurden.

Weitere Informationen