ArrayList ArrayList ArrayList ArrayList Class

Definition

Implementiert die IList-Schnittstelle. Dabei wird ein Array verwendet, dessen Größe je nach Bedarf dynamisch erhöht wird.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
Vererbung
ArrayListArrayListArrayListArrayList
Abgeleitet
Attribute
Implementiert

Beispiele

Im folgenden Beispiel wird gezeigt, wie ein ArrayList erstellt und initialisiert wird und wie seine Werte angezeigt werden.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

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 neue Entwicklung zu verwenden.We don't recommend that you use the ArrayList class for new development. Stattdessen wird empfohlen, dass Sie die generische Klasse List<T> verwenden.Instead, we recommend that you use the generic List<T> class. Die Klasse ArrayList ist so konzipiert, dass heterogene Auflistungen von Objekten enthalten sind.The ArrayList class is designed to hold heterogeneous collections of objects. Es bietet jedoch nicht immer die beste Leistung.However, it does not always offer the best performance. Stattdessen wird Folgendes empfohlen:Instead, we recommend the following:

  • Verwenden Sie für eine heterogene Auflistung von Objekten den Typ List<Object> C#(in) oder List(Of Object) (in Visual Basic).For a heterogeneous collection of objects, use the List<Object> (in C#) or List(Of Object) (in Visual Basic) type.
  • Verwenden Sie für eine homogene Auflistung von-Objekten die List<T>-Klasse.For a homogeneous collection of objects, use the List<T> class.
    Eine Erörterung der relativen Leistung dieser Klassen finden Sie unter Überlegungen zur Leistung im List<T>-Referenz Thema.See Performance Considerations in the List<T> reference topic for a discussion of the relative performance of these classes. Allgemeine Informationen zur Verwendung generischer anstelle von nicht generischen Auflistungs Typen finden Sie unter nicht generische Auflistungen sollten nicht auf GitHub verwendet werden .See Non-generic collections shouldn't be used on GitHub for general information on the use of generic instead of non-generic collection types.

Es ist nicht garantiert, dass die ArrayList sortiert ist.The ArrayList is not guaranteed to be sorted. Sie müssen den ArrayList sortieren, indem Sie die Sort-Methode aufrufen, bevor Sie Vorgänge ausführen (z. b. BinarySearch), für die die Sortierung der ArrayList erforderlich ist.You must sort the ArrayList by calling its Sort method prior to performing operations (such as BinarySearch) that require the ArrayList to be sorted. Um eine Auflistung beizubehalten, die automatisch nach dem Hinzufügen neuer Elemente sortiert wird, können Sie die Klasse SortedSet<T> verwenden.To maintain a collection that is automatically sorted as new elements are added, you can use the SortedSet<T> class.

Die Kapazität eines ArrayList ist die Anzahl der Elemente, die ArrayList enthalten kann.The capacity of an ArrayList is the number of elements the ArrayList can hold. Beim Hinzufügen von Elementen zu einem ArrayList wird die Kapazität aufgrund der erneuten Zuordnung automatisch erhöht.As elements are added to an ArrayList, the capacity is automatically increased as required through reallocation. Die Kapazität kann verringert werden, indem TrimToSize aufgerufen wird oder die Eigenschaft Capacity explizit festgelegt wird.The capacity can be decreased by calling TrimToSize or by setting the Capacity property explicitly.

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> -Konfigurations Elements auf true in der Laufzeitumgebung festlegen..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.

Auf Elemente in dieser Auflistung kann mit einem ganzzahligen Index zugegriffen werden.Elements in this collection can be accessed using an integer index. Indizes in dieser Sammlung sind NULL basiert.Indexes in this collection are zero-based.

Die ArrayList-Auflistung akzeptiert null als gültigen Wert.The ArrayList collection accepts null as a valid value. Außerdem sind doppelte Elemente zulässig.It also allows duplicate elements.

Die Verwendung von mehrdimensionalen Arrays als Elemente in einer ArrayList-Auflistung wird nicht unterstützt.Using multidimensional arrays as elements in an ArrayList collection is not supported.

Konstruktoren

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

Initialisiert eine neue, leere Instanz der ArrayList-Klasse, die die Standardanfangskapazität aufweist.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)

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.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)

Initialisiert eine neue, leere Instanz der ArrayList-Klasse, die die angegebene Anfangskapazität aufweist.Initializes a new instance of the ArrayList class that is empty and has the specified initial capacity.

Eigenschaften

Capacity Capacity Capacity Capacity

Ruft die Anzahl der Elemente ab, die die ArrayList enthalten kann, oder legt diese fest.Gets or sets the number of elements that the ArrayList can contain.

Count Count Count Count

Ruft die Anzahl der Elemente ab, die tatsächlich in ArrayList enthalten sind.Gets the number of elements actually contained in the ArrayList.

IsFixedSize IsFixedSize IsFixedSize IsFixedSize

Ruft einen Wert ab, der angibt, ob das ArrayList eine feste Größe aufweist.Gets a value indicating whether the ArrayList has a fixed size.

IsReadOnly IsReadOnly IsReadOnly IsReadOnly

Ruft einen Wert ab, der angibt, ob das ArrayList schreibgeschützt ist.Gets a value indicating whether the ArrayList is read-only.

IsSynchronized IsSynchronized IsSynchronized IsSynchronized

Ruft einen Wert ab, der angibt, ob der Zugriff auf die ArrayList synchronisiert (threadsicher) ist.Gets a value indicating whether access to the ArrayList is synchronized (thread safe).

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

Ruft das Element am angegebenen Index ab oder legt dieses fest.Gets or sets the element at the specified index.

SyncRoot SyncRoot SyncRoot SyncRoot

Ruft ein Objekt ab, mit dem der Zugriff auf ArrayList synchronisiert werden kann.Gets an object that can be used to synchronize access to the ArrayList.

Methoden

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

Erstellt einen ArrayList-Wrapper für eine angegebene IList.Creates an ArrayList wrapper for a specific IList.

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

Fügt am Ende der ArrayList ein Objekt hinzu.Adds an object to the end of the ArrayList.

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

Fügt die Elemente einer ICollection am Ende der ArrayList hinzu.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)

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.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)

Durchsucht mithilfe des Standardcomparers die gesamte sortierte ArrayList nach einem Element und gibt den nullbasierten Index des Elements zurück.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)

Durchsucht mithilfe des angegebenen Comparers die gesamte sortierte ArrayList nach einem Element und gibt den nullbasierten Index des Elements zurück.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()

Entfernt alle Elemente aus der ArrayList.Removes all elements from the ArrayList.

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

Erstellt eine flache Kopie von ArrayList.Creates a shallow copy of the ArrayList.

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

Bestimmt, ob sich ein Element in ArrayList befindet.Determines whether an element is in the ArrayList.

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

Kopiert die gesamte ArrayList in ein kompatibles eindimensionales Array, wobei am Anfang des Zielarrays begonnen wird.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)

Kopiert die gesamte ArrayList-Instanz in ein kompatibles eindimensionales Array, beginnend am angegebenen Index des Zielarrays.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)

Kopiert einen Bereich von Elementen aus der ArrayList in ein kompatibles eindimensionales Array, beginnend ab dem angegebenen Index im Zielarray.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)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object.

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

Gibt einen ArrayList-Wrapper mit fester Größe zurück.Returns an ArrayList wrapper with a fixed size.

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

Gibt einen IList-Wrapper mit fester Größe zurück.Returns an IList wrapper with a fixed size.

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

Gibt einen Enumerator für die gesamte ArrayList zurück.Returns an enumerator for the entire ArrayList.

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

Gibt einen Enumerator für einen Bereich von Elementen in der ArrayList zurück.Returns an enumerator for a range of elements in the ArrayList.

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

Fungiert als Standardhashfunktion.Serves as the default hash function.

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

Gibt eine ArrayList zurück, die eine Teilgruppe der Elemente aus der Quell-ArrayList darstellt.Returns an ArrayList which represents a subset of the elements in the source ArrayList.

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

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

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

Sucht nach dem angegebenen Object und gibt den nullbasierten Index des ersten Vorkommens innerhalb der gesamten ArrayList zurück.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)

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.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)

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.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)

Fügt am angegebenen Index ein Element in die ArrayList ein.Inserts an element into the ArrayList at the specified index.

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

Fügt die Elemente einer Auflistung am angegebenen Index in die ArrayList ein.Inserts the elements of a collection into the ArrayList at the specified index.

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

Sucht nach dem angegebenen Object und gibt den nullbasierten Index des letzten Vorkommens innerhalb der gesamten ArrayList zurück.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)

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.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)

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.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()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

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

Gibt einen schreibgeschützten ArrayList-Wrapper zurück.Returns a read-only ArrayList wrapper.

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

Gibt einen schreibgeschützten IList-Wrapper zurück.Returns a read-only IList wrapper.

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

Entfernt das erste Vorkommen eines angegebenen Objekts aus der ArrayList.Removes the first occurrence of a specific object from the ArrayList.

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

Entfernt das Element am angegebenen Index aus der ArrayList.Removes the element at the specified index of the ArrayList.

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

Entfernt einen Bereich von Elementen aus der ArrayList.Removes a range of elements from the ArrayList.

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

Gibt eine ArrayList zurück, deren Elemente Kopien des angegebenen Werts sind.Returns an ArrayList whose elements are copies of the specified value.

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

Kehrt die Reihenfolge der Elemente in der gesamten ArrayList um.Reverses the order of the elements in the entire ArrayList.

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

Kehrt die Reihenfolge der Elemente im angegebenen Bereich um.Reverses the order of the elements in the specified range.

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

Kopiert die Elemente einer Auflistung über einen Bereich von Elementen in der ArrayList.Copies the elements of a collection over a range of elements in the ArrayList.

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

Sortiert die Elemente in der gesamten ArrayList.Sorts the elements in the entire ArrayList.

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

Sortiert die Elemente in der gesamten ArrayList mithilfe des angegebenen Comparers.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)

Sortiert die Elemente in einem Bereich von Elementen in der ArrayList mithilfe des angegebenen Vergleichs.Sorts the elements in a range of elements in ArrayList using the specified comparer.

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

Gibt einen synchronisierten (threadsicheren) ArrayList-Wrapper zurück.Returns an ArrayList wrapper that is synchronized (thread safe).

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

Gibt einen synchronisierten (threadsicheren) IList-Wrapper zurück.Returns an IList wrapper that is synchronized (thread safe).

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

Kopiert die Elemente der ArrayList in ein neues Object-Array.Copies the elements of the ArrayList to a new Object array.

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

Kopiert die Elemente der ArrayList in ein neues Array vom angegebenen Elementtyp.Copies the elements of the ArrayList to a new array of the specified element type.

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

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

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

Legt die Kapazität auf die Anzahl der tatsächlich in der ArrayList enthaltenen Elemente fest.Sets the capacity to the actual number of elements in the ArrayList.

Erweiterungsmethoden

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

Wandelt die Elemente eines IEnumerable in den angegebenen Typ umCasts the elements of an IEnumerable to the specified type.

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

Filtert die Elemente eines IEnumerable anhand eines angegebenen TypsFilters the elements of an IEnumerable based on a specified type.

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

Ermöglicht die Parallelisierung einer Abfrage.Enables parallelization of a query.

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

Konvertiert einen IEnumerable in einen IQueryable.Converts an IEnumerable to an IQueryable.

Gilt für:

Threadsicherheit

Öffentliche statische (Shared in Visual Basic) Member dieses Typs sind Thread sicher.Public static (Shared in Visual Basic) members of this type are thread safe. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.Any instance members are not guaranteed to be thread safe.

Ein ArrayList kann mehrere Leser gleichzeitig unterstützen, solange die Sammlung nicht geändert wird.An ArrayList can support multiple readers concurrently, as long as the collection is not modified. Um die Thread Sicherheit der ArrayList zu gewährleisten, müssen alle Vorgänge über den von der Synchronized(IList)-Methode zurückgegebenen Wrapper durchgeführt werden.To guarantee the thread safety of the ArrayList, all operations must be done through the wrapper returned by the Synchronized(IList) method.

Die Enumeration einer Auflistung ist systemintern keine threadsichere Prozedur.Enumerating through a collection is intrinsically not a thread-safe procedure. 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.Even when a collection is synchronized, other threads can still modify the collection, which causes the enumerator to throw an exception. 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.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.

Siehe auch