Auflistungen und Datenstrukturen

Miteinander verwandte Daten können effektiver gehandhabt werden, wenn sie in Auflistungen gruppiert werden. Anstatt Code für jedes einzelne Objekt zu schreiben, kann derselbe Code verwendet werden, um alle Elemente einer Auflistung zu verarbeiten.

Zum Verwalten einer Auflistung können mit der System.Array-Klasse und den Klassen in den Namespaces System.Collections, System.Collections.Generic und System.Collections.Concurrent einzelne Elemente oder Elementbereiche in der Auflistung hinzugefügt, entfernt und bearbeitet werden. Es kann auch eine gesamte Auflistung in eine andere Auflistung kopiert werden.

Einige System.Collections-Klassen verfügen über Sortierfunktionen, und die meisten sind indiziert. Die Speicherverwaltung erfolgt automatisch, und die Kapazität einer Auflistung wird je nach Anforderung erweitert. Die Synchronisierung bietet Threadsicherheit beim Zugriff auf die Member der Auflistung. Einige der System.Collections-Klassen können Wrapper generieren, die die Auflistung mit einem Schreibschutz oder einer festen Größe versehen. Alle System.Collections-Klassen können ihren eigenen Enumerator generieren, der das Durchlaufen der Elemente vereinfacht.

In .NET Framework, Version 2.0 bieten generische Auflistungsklassen neue Funktionalität und vereinfachen das Erstellen von Auflistungen mit starker Typisierung. Siehe den System.Collections.Generic-Namespace und den System.Collections.ObjectModel-Namespace.

In .NET Framework, Version 4 stellen die Auflistungen im System.Collections.Concurrent-Namespace effiziente threadsichere Operationen für den Zugriff auf Auflistungselemente aus mehreren Threads bereit.

Mit der LINQ to Objects-Funktion können Sie LINQ-Abfragen für den Zugriff auf Objekte im Arbeitsspeicher verwenden, solange der Objekttyp die System.Collections.IEnumerable- oder System.Collections.Generic.IEnumerable<T>-Schnittstelle 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-zu-Objekte und Paralleles LINQ (PLINQ).

Verwandte Themen

Titel

Beschreibung

Definieren von Auflistungen

Beschreibt Auflistungstypen und erläutert die Unterschiede zwischen generischen und nicht generischen Auflistungstypen in der .NET Framework-Klassenbibliothek.

Häufig verwendete Auflistungstypen

Beschreibt häufig verwendete generische und nicht generische Auflistungstypen, z. B. System.Array, System.Collections.Generic.List<T> und System.Collections.Generic.Dictionary<TKey, TValue>.

Bitauflistungen

Beschreibt den System.Collections.BitArray-Auflistungstyp und den System.Collections.Specialized.BitVector32-Auflistungstyp.

Spezialisierte Auflistungen

Beschreibt Auflistungen für spezielle Zwecke, z. B. System.Collections.Specialized.NameValueCollection, System.Collections.Specialized.StringDictionary und System.Collections.Specialized.StringCollection.

Threadsichere Auflistungen

Beschreibt Auflistungstypen wie System.Collections.Concurrent.BlockingCollection<T> und System.Collections.Concurrent.ConcurrentBag<T>, die den sicheren und effizienten gleichzeitigen Zugriff von mehreren Threads unterstützen.

Erstellen und Verändern von Auflistungen

Erörtert die Wahl des optimalen Auflistungstyps, das Enumerieren von Auflistungen, Verwenden von Auflistungen mit mehreren Threads und Sortieren von Auflistungen.

Verwenden von generischen Auflistungen

Erörtert die Verwendung generischer Auflistungstypen.

Verweise

System.Array

System.Collections

System.Collections.Concurrent

System.Collections.Generic

System.Collections.Specialized

System.Linq