ArrayList Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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:
- Verwenden Sie für eine heterogene Auflistung von Objekten den
List<Object>
Typ (in C#) oderList(Of Object)
(in Visual Basic). - Verwenden Sie für eine homogene Auflistung von -Objekten die List<T> -Klasse. Eine Erläuterung der List<T> relativen Leistung dieser Klassen finden Sie unter Leistungsüberlegungen im Referenzthema. Allgemeine Informationen zur Verwendung generischer anstelle von nicht generischen Sammlungstypen finden Sie unter Nicht generische Auflistungen sollten nicht auf GitHub verwendet werden.
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) | |
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.