Häufig verwendete AuflistungstypenCommonly Used Collection Types

Auflistungstypen sind die allgemeinen Variationen von Datenauflistungen, z. B. Hashtabellen, Warteschlangen, Stapel, Sammlungen, Wörterbücher und Listen.Collection types are the common variations of data collections, such as hash tables, queues, stacks, bags, dictionaries, and lists.

Auflistungen basieren auf der ICollection-Schnittstelle, der IList-Schnittstelle, der IDictionary-Schnittstelle oder auf ihren generischen Entsprechungen.Collections are based on the ICollection interface, the IList interface, the IDictionary interface, or their generic counterparts. Die IList-Schnittstelle und die IDictionary-Schnittstelle leiten sich beide aus der ICollection-Schnittstelle ab. Daher basieren alle Auflistungen direkt oder indirekt auf der ICollection-Schnittstelle.The IList interface and the IDictionary interface are both derived from the ICollection interface; therefore, all collections are based on the ICollection interface either directly or indirectly. In Auflistungen, die auf der IList-Schnittstelle basieren (zum Beispiel Array, ArrayList oder List<T>) oder direkt auf der ICollection-Schnittstelle (zum Beispiel Queue, ConcurrentQueue<T>, Stack, ConcurrentStack<T> oder LinkedList<T>), enthält jedes Element nur einen Wert.In collections based on the IList interface (such as Array, ArrayList, or List<T>) or directly on the ICollection interface (such as Queue, ConcurrentQueue<T>, Stack, ConcurrentStack<T> or LinkedList<T>), every element contains only a value. In Auflistungen, die auf der IDictionary-Schnittstelle basieren (zum Beispiel die Klassen Hashtable und SortedList, die generischen Klassen Dictionary<TKey,TValue> und SortedList<TKey,TValue>), oder die auf den ConcurrentDictionary<TKey,TValue>-Klassen basieren, enthält jedes Element einen Schlüssel und einen Wert.In collections based on the IDictionary interface (such as the Hashtable and SortedList classes, the Dictionary<TKey,TValue> and SortedList<TKey,TValue> generic classes), or the ConcurrentDictionary<TKey,TValue> classes, every element contains both a key and a value. Die KeyedCollection<TKey,TItem>-Klasse ist eindeutig, da sie eine Liste von Werten mit Schlüsseln darstellt, die in den Werten eingebettet sind. Deshalb verhält sie sich wie eine Liste und wie ein Wörterbuch.The KeyedCollection<TKey,TItem> class is unique because it is a list of values with keys embedded within the values and, therefore, it behaves like a list and like a dictionary.

Generische Auflistungen sind die beste Lösung für eine starke Typisierung.Generic collections are the best solution to strong typing. Wenn Ihre Sprache allerdings keine generischen Auflistungen unterstützt, enthält der System.Collections-Namespace Basisauflistungen, zum Beispiel CollectionBase, ReadOnlyCollectionBase und DictionaryBase. Dabei handelt es sich um abstrakte Basisklassen, die erweitert werden können, um Auflistungsklassen zu erstellen, die stark typisiert sind.However, if your language does not support generics, the System.Collections namespace includes base collections, such as CollectionBase, ReadOnlyCollectionBase, and DictionaryBase, which are abstract base classes that can be extended to create collection classes that are strongly typed. Beim effizienter Zugriff auf Multithreadauflistungen erforderlich ist, verwenden Sie die generischen Auflistungen im System.Collections.Concurrent-Namespace.When efficient multi-threaded collection access is required, use the generic collections in the System.Collections.Concurrent namespace.

Auflistungen können variieren, je nachdem, wie die Elemente gespeichert werden, wie sie sortiert werden, wie Suchvorgänge ausgeführt werden und wie Vergleiche vorgenommen werden.Collections can vary, depending on how the elements are stored, how they are sorted, how searches are performed, and how comparisons are made. Die Queue-Klasse und die generische Queue<T>-Klasse stellen First-in-First-Out-Listen bereit, während die Stack-Klasse und die generische Stack<T>-Klasse Last-in-First-Out-Listen bereitstellen.The Queue class and the Queue<T> generic class provide first-in-first-out lists, while the Stack class and the Stack<T> generic class provide last-in-first-out lists. Die SortedList-Klasse und die generische SortedList<TKey,TValue>-Klasse stellen sortierte Versionen der Hashtable-Klasse und der generischen Dictionary<TKey,TValue>-Klasse bereit.The SortedList class and the SortedList<TKey,TValue> generic class provide sorted versions of the Hashtable class and the Dictionary<TKey,TValue> generic class. Der Zugriff auf die Elemente einer Hashtable oder Dictionary<TKey,TValue> ist nur über den Schlüssel des Elements möglich, aber der Zugriff auf Elemente einer SortedList oder KeyedCollection<TKey,TItem> ist über den Schlüssel oder den Index des Elements möglich.The elements of a Hashtable or a Dictionary<TKey,TValue> are accessible only by the key of the element, but the elements of a SortedList or a KeyedCollection<TKey,TItem> are accessible either by the key or by the index of the element. Die Indizes in allen Auflistungen sind nullbasiert, mit Ausnahme von Array, wodurch auch Arrays, die nicht nullbasiert sind, zulässig sind.The indexes in all collections are zero-based, except Array, which allows arrays that are not zero-based.

Mit der LINQ to Objects-Funktion können Sie LINQ-Abfragen für den Zugriff auf Objekte im Arbeitsspeicher verwenden, solange der Objekttyp IEnumerable oder IEnumerable<T> implementiert.The LINQ to Objects feature allows you to use LINQ queries to access in-memory objects as long as the object type implements IEnumerable or IEnumerable<T>. LINQ-Abfragen bieten ein allgemeines Muster für den Datenzugriff, sind normalerweise präziser und besser lesbar als standardmäßige foreach-Schleifen und stellen Filter-, Sortier- und Gruppierungsfunktionen bereit.LINQ queries provide a common pattern for accessing data; are typically more concise and readable than standard foreach loops; and provide filtering, ordering and grouping capabilities. LINQ-Abfragen können auch die Leistung verbessern.LINQ queries can also improve performance. Weitere Informationen finden Sie unter LINQ-zu-Objekte und Parallel LINQ (PLINQ) (Paralleles LINQ (PLINQ)).For more information, see LINQ to Objects and Parallel LINQ (PLINQ).

TitelTitle descriptionDescription
Auflistungen und DatenstrukturenCollections and Data Structures Erläutert die unterschiedlichen Auflistungstypen, die in .NET Framework.NET Framework verfügbar sind, z. B. Stapel, Warteschlangen, Listen, Arrays und Wörterbücher.Discusses the various collection types available in the .NET Framework.NET Framework, including stacks, queues, lists, arrays, and dictionaries.
Hashtable-Auflistungstyp und Dictionary-AuflistungstypHashtable and Dictionary Collection Types Beschreibt die Funktionen von generischen und nicht generischen hashbasierten Wörterbuchtypen.Describes the features of generic and nongeneric hash-based dictionary types.
Sortierte AuflistungstypenSorted Collection Types Beschreibt Klassen, die Sortierfunktionen für Listen und Sätze bereitstellen.Describes classes that provide sorting functionality for lists and sets.
GenerikaGenerics Beschreibt das Generikafeature, einschließlich der generischen Auflistungen, Delegaten und Schnittstellen, die von .NET Framework.NET Framework bereitgestellt werden.Describes the generics feature, including the generic collections, delegates, and interfaces provided by the .NET Framework.NET Framework. Enthält Links zur Featuredokumentation für C#, Visual Basic und Visual C++ sowie zu unterstützenden Technologien wie der Reflektion.Provides links to feature documentation for C#, Visual Basic, and Visual C++, and to supporting technologies such as reflection.

ReferenzReference

System.Collections

System.Collections.Generic

System.Collections.ICollection

System.Collections.Generic.ICollection<T>

System.Collections.IList

System.Collections.Generic.IList<T>

System.Collections.IDictionary

System.Collections.Generic.IDictionary<TKey,TValue>