Generische Auflistungen in .NET Framework
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 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 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
Referenz
System.Collections.ObjectModel
Konzepte
Generische Delegaten zum Bearbeiten von Arrays und Listen
Vorteile und Einschränkungen von Generika