Freigeben über


Verwenden von generischen Auflistungen

Aktualisiert: November 2007

Die Verwendung generischer Auflistungen ist grundsätzlich empfehlenswert, da sie als unmittelbaren Vorteil die Typsicherheit erlauben, ohne von einem Basisauflistungstyp ableiten und typenspezifische Member implementieren zu müssen. Generische Auflistungstypen bieten allgemein auch eine bessere Leistung als die entsprechenden nicht generischen Auflistungstypen (und als die von nicht generischen Basisauflistungstypen abgeleiteten Typen), wenn es sich bei den Auflistungselementen um Werttypen handelt, da bei Generika kein Boxing der Elemente erforderlich ist.

Die folgenden generischen Typen entsprechen vorhandenen Auflistungstypen:

Zusätzliche Typen

Es gibt mehrere generische Auflistungstypen, zu denen keine nicht generischen Entsprechungen vorhanden sind:

LINQ to Objects

Mit dem LINQ to Objects-Feature können Sie LINQ-Abfragen für den Zugriff auf Objekte im Arbeitsspeicher verwenden, solange der Objekttyp IEnumerable oder IEnumerable<T> implementiert. 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-Abfragen können auch die Leistung verbessern. Weitere Informationen finden Sie unter LINQ to Objects.

Zusätzliche Funktionalität

Einige der generischen Typen besitzen Funktionen, die in den nicht generischen Auflistungstypen nicht vorhanden sind. Die List<T>-Klasse, die der nicht generischen ArrayList-Klasse entspricht, verfügt beispielsweise über eine Reihe von Methoden, die generische Delegaten akzeptieren, z. B. den Predicate<T>-Delegaten, mit dem Methoden zum Durchsuchen der Liste angegeben werden können, den Action<T>-Delegaten, der Methoden darstellt, die für jedes Element der Liste eine Aktion ausführen, und den Converter<TInput, TOutput>-Delegaten, mit dem Sie Konvertierungen zwischen Typen definieren können.

Die List<T>-Klasse ermöglicht es, eigene generische IComparer<T>-Schnittstellenimplementierungen zum Sortieren und Durchsuchen der Liste anzugeben. Die SortedDictionary<TKey, TValue>-Klasse und die SortedList<TKey, TValue>-Klasse bieten diese Möglichkeit ebenfalls und erlauben es darüber hinaus, die Vergleiche beim Erstellen der Auflistung anzugeben. In ähnlicher Weise ermöglichen es die Dictionary<TKey, TValue>-Klasse und KeyedCollection<TKey, TItem>-Klasse, die eigene Vergleiche auf Gleichheit anzugeben.

Siehe auch

Konzepte

Übersicht über Generika in .NET Framework

Weitere Ressourcen

Häufig verwendete Auflistungstypen