Generische Auflistungen in .NET Framework

Aktualisiert: November 2007

In diesem Thema finden Sie eine Übersicht über die generischen Auflistungsklassen und andere generische Typen in .NET Framework.

Generische Auflistungen in .NET Framework

Die Klassenbibliothek von .NET Framework enthält eine Reihe generischer Auflistungsklassen im System.Collections.Generic-Namespace und im System.Collections.ObjectModel-Namespace. Weitere 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 die generische Version von Hashtable und verwendet die generische Struktur KeyValuePair<TKey, TValue> anstelle von DictionaryEntry für die Enumeration.

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

Es gibt generische und nicht generische Versionen von SortedList<TKey, TValue>. Beide Versionen sind eine Mischung aus Wörterbuch und 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. Zu ihr gibt es keine nicht generische Entsprechung.

System.Collections.ObjectModel

Die generische Collection<T>-Klasse stellt eine Basisklasse zum Ableiten eigener generischer Auflistungstypen bereit. 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, Werttypen so zu verwenden, als ob ihnen null zugewiesen werden konnte. Dies kann bei der Verwendung von Datenbankabfragen hilfreich sein, bei denen Felder fehlen können, die Werttypen enthalten. Der generische Typparameter kann ein beliebiger Werttyp sein.

Hinweis:

In C# muss Nullable<T> nicht explizit verwendet werden, da die Sprache eine Syntax für NULL-fähige Typen besitzt.

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

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

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

Siehe auch

Konzepte

Übersicht über Generika in .NET Framework

Generische Delegaten zum Bearbeiten von Arrays und Listen

Generische Schnittstellen

Vorteile und Einschränkungen von Generika

Referenz

System.Collections.Generic

System.Collections.ObjectModel

Weitere Ressourcen

Generika in .NET Framework