Generische Sammlungen in .NETGeneric collections in .NET

Die Klassenbibliothek von .NET enthält eine Reihe generischer Auflistungsklassen in den Namespaces System.Collections.Generic und System.Collections.ObjectModel.The .NET class library provides a number of generic collection classes in the System.Collections.Generic and System.Collections.ObjectModel namespaces. Ausführliche Informationen zu diesen Klassen finden Sie unter Häufig verwendete Auflistungstypen.For more detailed information about these classes, see Commonly Used Collection Types.

System.Collections.GenericSystem.Collections.Generic

Viele der generischen Auflistungstypen sind direkte Entsprechungen nicht generischer Typen.Many of the generic collection types are direct analogs of nongeneric types. Dictionary<TKey,TValue> ist eine generische Version von Hashtable. Sie verwendet die generische Struktur KeyValuePair<TKey,TValue> für die Enumeration anstelle von DictionaryEntry.Dictionary<TKey,TValue> is a generic version of Hashtable; it uses the generic structure KeyValuePair<TKey,TValue> for enumeration instead of DictionaryEntry.

List<T> ist eine generische Version von ArrayList.List<T> is a generic version of ArrayList. Es gibt die generischen Klassen Queue<T> und Stack<T>, die nicht generischen Versionen entsprechen.There are generic Queue<T> and Stack<T> classes that correspond to the nongeneric versions.

Es gibt generische und nicht generische Versionen von SortedList<TKey,TValue>.There are generic and nongeneric versions of SortedList<TKey,TValue>. Beide Versionen sind eine Mischung aus einem Wörterbuch und einer Liste.Both versions are hybrids of a dictionary and a list. Die generische SortedDictionary<TKey,TValue>-Klasse ist ein reines Wörterbuch und hat keine nicht generische Entsprechung.The SortedDictionary<TKey,TValue> generic class is a pure dictionary and has no nongeneric counterpart.

Die generische LinkedList<T>-Klasse ist eine echte verknüpfte Liste.The LinkedList<T> generic class is a true linked list. Sie hat keine nicht generische Entsprechung.It has no nongeneric counterpart.

System.Collections.ObjectModelSystem.Collections.ObjectModel

Die generische Collection<T>-Klasse stellt eine Basisklasse bereit, aus der Sie Ihre eigenen generischen Auflistungstypen ableiten können.The Collection<T> generic class provides a base class for deriving your own generic collection types. Die ReadOnlyCollection<T>-Klasse bietet eine einfache Möglichkeit, eine schreibgeschützte Auflistung von jedem beliebigen Typ abzuleiten, der die generische IList<T>-Schnittstelle implementiert.The ReadOnlyCollection<T> class provides an easy way to produce a read-only collection from any type that implements the IList<T> generic interface. Die generische KeyedCollection<TKey,TItem>-Klasse bietet eine Möglichkeit, Objekte zu speichern, die ihre eigenen Schlüssel enthalten.The KeyedCollection<TKey,TItem> generic class provides a way to store objects that contain their own keys.

Andere generische TypenOther generic types

Die generische Nullable<T>Struktur ermöglicht es Ihnen, die Werttypen so zu verwenden, als ob ihnen null zugewiesen werden könnte.The Nullable<T> generic structure allows you to use value types as if they could be assigned null. Dies kann nützlich sein, wenn Datenbankabfragen verwendet werden, für die möglicherweise Felder fehlen, die Werttypen enthalten.This can be useful when working with database queries, where fields that contain value types can be missing. Der generische Typparameter kann ein beliebiger Werttyp sein.The generic type parameter can be any value type.

Hinweis

In C# und Visual Basic muss Nullable<T> nicht explizit verwendet werden, weil die Sprache eine Syntax für NULL-fähige Typen umfasst.In C# and Visual Basic, it is not necessary to use Nullable<T> explicitly because the language has syntax for nullable types. Siehe Nullable-Werttypen (C#-Referenz) und Nullwerte zulassende Werttypen (Visual Basic).See Nullable value types (C# reference) and Nullable value types (Visual Basic).

Die generische ArraySegment<T>-Struktur bietet eine Möglichkeit, einen Bereich von Elementen in einem eindimensionalen nullbasierten Array eines beliebigen Typs abzugrenzen.The ArraySegment<T> generic structure provides a way to delimit a range of elements within a one-dimensional, zero-based array of any type. Der generische Typparameter ist der Typ der Elemente des Arrays.The generic type parameter is the type of the array's elements.

Wird der generische EventHandler<TEventArgs>-Delegat verwendet, muss kein Delegattyp zum Behandeln von Ereignissen mehr deklariert werden, wenn für das Ereignis das von .NET Framework verwendete Muster für die Ereignisbehandlung befolgt wird.The EventHandler<TEventArgs> generic delegate eliminates the need to declare a delegate type to handle events, if your event follows the event-handling pattern used by the .NET Framework. Angenommen, Sie haben die von MyEventArgs abgeleitete EventArgs-Klasse erstellt, um die Daten für das Ereignis zu speichern.For example, suppose you have created a MyEventArgs class, derived from EventArgs, to hold the data for your event. Sie können das Ereignis dann wie folgt deklarieren:You can then declare the event as follows:

public:
    event EventHandler<MyEventArgs^>^ MyEvent;
public event EventHandler<MyEventArgs> MyEvent;
Public Event MyEvent As EventHandler(Of MyEventArgs)

Weitere InformationenSee also