Generische Sammlungen in .NET

Die Klassenbibliothek von .NET enthält eine Reihe generischer Auflistungsklassen in den Namespaces System.Collections.Generic und System.Collections.ObjectModel. Ausführliche Informationen zu diesen Klassen finden Sie unter Häufig verwendete Auflistungstypen.

System.Collections.Generic

Viele der generischen Auflistungstypen sind direkte Entsprechungen nicht generischer Typen. Dictionary<TKey,TValue> ist eine generische Version von Hashtable. Sie verwendet die generische Struktur KeyValuePair<TKey,TValue> für die Enumeration anstelle von DictionaryEntry.

List<T> ist eine generische Version von ArrayList. Es gibt die generischen Klassen Queue<T> und Stack<T>, die nicht generischen Versionen entsprechen.

Es gibt generische und nicht generische Versionen von SortedList<TKey,TValue>. Beide Versionen sind eine Mischung aus einem Wörterbuch und einer Liste. Die generische SortedDictionary<TKey,TValue>-Klasse ist ein reines Wörterbuch und hat keine nicht generische Entsprechung.

Die generische LinkedList<T>-Klasse ist eine echte verknüpfte Liste. Sie hat keine nicht generische Entsprechung.

System.Collections.ObjectModel

Die generische Collection<T>-Klasse stellt eine Basisklasse bereit, aus der Sie Ihre eigenen generischen Auflistungstypen ableiten können. 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. Die generische KeyedCollection<TKey,TItem>-Klasse bietet eine Möglichkeit, Objekte zu speichern, die ihre eigenen Schlüssel enthalten.

Andere generische Typen

Die generische Nullable<T>Struktur ermöglicht es Ihnen, die Werttypen so zu verwenden, als ob ihnen null zugewiesen werden könnte. Dies kann nützlich sein, wenn Datenbankabfragen verwendet werden, für die möglicherweise Felder fehlen, die Werttypen enthalten. Der generische Typparameter kann ein beliebiger Werttyp sein.

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. Siehe Nullable-Werttypen (C#-Referenz) und Nullwerte zulassende Werttypen (Visual Basic).

Die generische ArraySegment<T>-Struktur bietet eine Möglichkeit, einen Bereich von Elementen in einem eindimensionalen nullbasierten Array eines beliebigen Typs abzugrenzen. Der generische Typparameter ist der Typ der Elemente des Arrays.

Wird der generische EventHandler<TEventArgs>-Delegat verwendet, muss kein Delegattyp zum Behandeln von Ereignissen mehr deklariert werden, wenn das Ereignis dem von .NET verwendeten Muster für die Ereignisbehandlung folgt. Angenommen, Sie haben die von EventArgs abgeleitete MyEventArgs-Klasse erstellt, um die Daten für das Ereignis zu speichern. Sie können das Ereignis dann wie folgt deklarieren:

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

Siehe auch