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 |
---|---|
Beschreibt Auflistungstypen und erläutert die Unterschiede zwischen generischen und nicht generischen Auflistungstypen in der .NET Framework-Klassenbibliothek. |
|
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>. |
|
Beschreibt den System.Collections.BitArray-Auflistungstyp und den System.Collections.Specialized.BitVector32-Auflistungstyp. |
|
Beschreibt Auflistungen für spezielle Zwecke, z. B. System.Collections.Specialized.NameValueCollection, System.Collections.Specialized.StringDictionary und System.Collections.Specialized.StringCollection. |
|
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. |
|
Erörtert die Wahl des optimalen Auflistungstyps, das Enumerieren von Auflistungen, Verwenden von Auflistungen mit mehreren Threads und Sortieren von Auflistungen. |
|
Erörtert die Verwendung generischer Auflistungstypen. |