System.Collections.Immutable Namespace

Dieser Namespace enthält Schnittstellen und Klassen, die unveränderliche Sammlungen definieren.

Klassen

ImmutableArray

Stellt Methoden zum Erstellen eines Arrays bereit, das unveränderlich ist. Dies bedeutet, dass es nach der Erstellung nicht mehr geändert werden kann.

NuGet-Paket: System.Collections.Immutable (Grundlegendes zu unveränderlichen Sammlungen und deren Installation)

ImmutableArray<T>.Builder

Eine beschreibbare Arrayzugriffsmethode, der in eine ImmutableArray<T>-Instanz konvertiert werden kann, ohne zusätzlichen Speicher zu belegen.

NuGet-Paket: System.Collections.Immutable (Grundlegendes zu unveränderlichen Sammlungen und deren Installation)

ImmutableDictionary

Stellt eine Reihe von Initialisierungsmethoden für Instanzen der ImmutableDictionary<TKey,TValue> Klasse bereit.

NuGet-Paket: System.Collections.Immutable (Grundlegendes zu unveränderlichen Sammlungen und deren Installation)

ImmutableDictionary<TKey,TValue>.Builder

Stellt eine Hashzuordnung dar, die mit wenigen oder gar keinen Speicherbelegungen geändert wird und sehr effizient unveränderliche Hashzuordnungsinstanzen produzieren oder erstellen kann.

NuGet-Paket: System.Collections.Immutable (Grundlegendes zu unveränderlichen Sammlungen und deren Installation)

ImmutableDictionary<TKey,TValue>

Stellt eine unveränderliche unsortierte Auflistung von Schlüsseln und Werten dar.

NuGet-Paket: System.Collections.Immutable (Grundlegendes zu unveränderlichen Sammlungen und deren Installation)

ImmutableHashSet

Stellt eine Reihe von Initialisierungsmethoden für Instanzen der ImmutableHashSet<T> Klasse bereit.

NuGet-Paket: System.Collections.Immutable (Grundlegendes zu unveränderlichen Sammlungen und deren Installation)

ImmutableHashSet<T>.Builder

Stellt ein Hashset dar, das mit wenigen oder gar keinen Speicherbelegungen geändert wird und sehr effizient Instanzen unveränderlicher Hashsets erzeugen oder darauf aufbauen kann.

NuGet-Paket: System.Collections.Immutable (Grundlegendes zu unveränderlichen Sammlungen und deren Installation)

ImmutableHashSet<T>

Stellt ein unveränderliches unsortiertes Hashset dar.

NuGet-Paket: System.Collections.Immutable (Grundlegendes zu unveränderlichen Sammlungen und deren Installation)

ImmutableInterlocked

Enthält ineinandergreifende Austauschmechanismen für unveränderliche Auflistungen.

NuGet-Paket: System.Collections.Immutable (Grundlegendes zu unveränderlichen Sammlungen und deren Installation)

ImmutableList

Stellt eine Reihe von Initialisierungsmethoden für Instanzen der ImmutableList<T> Klasse bereit.

NuGet-Paket: System.Collections.Immutable (Grundlegendes zu unveränderlichen Sammlungen und deren Installation)

ImmutableList<T>.Builder

Stellt eine Liste dar, die mit wenigen oder gar keinen Speicherbelegungen geändert wird und sehr effizient Instanzen unveränderlicher Listen erzeugen oder darauf aufbauen kann.

NuGet-Paket: System.Collections.Immutable (Grundlegendes zu unveränderlichen Sammlungen und deren Installation)

ImmutableList<T>

Stellt eine unveränderliche Liste dar, bei der es sich um eine stark typisierte Liste von Objekten handelt, auf die über einen Index zugegriffen werden kann.

NuGet-Paket: System.Collections.Immutable (Grundlegendes zu unveränderlichen Sammlungen und deren Installation)

ImmutableQueue

Stellt eine Reihe von Initialisierungsmethoden für Instanzen der ImmutableQueue<T> Klasse bereit.

NuGet-Paket: System.Collections.Immutable (Grundlegendes zu unveränderlichen Sammlungen und deren Installation)

ImmutableQueue<T>

Stellt eine unveränderliche Warteschlange dar.

NuGet-Paket: System.Collections.Immutable (Grundlegendes zu unveränderlichen Sammlungen und deren Installation)

ImmutableSortedDictionary

Stellt eine Reihe von Initialisierungsmethoden für Instanzen der ImmutableSortedDictionary<TKey,TValue> Klasse bereit.

NuGet-Paket: System.Collections.Immutable (Grundlegendes zu unveränderlichen Sammlungen und deren Installation)

ImmutableSortedDictionary<TKey,TValue>.Builder

Stellt ein sortiertes Wörterbuch dar, das mit wenigen oder gar keinen Speicherbelegungen geändert wird und das sehr effizient unveränderlich sortierte Wörterbuch-Instanzen produzieren oder auf ihnen aufbauen kann.

NuGet-Paket: System.Collections.Immutable (Grundlegendes zu unveränderlichen Sammlungen und deren Installation)

ImmutableSortedDictionary<TKey,TValue>

Stellt ein unveränderlich sortiertes Wörterbuch dar.

NuGet-Paket: System.Collections.Immutable (Grundlegendes zu unveränderlichen Sammlungen und deren Installation)

ImmutableSortedSet

Stellt eine Reihe von Initialisierungsmethoden für Instanzen der ImmutableSortedSet<T> Klasse bereit.

NuGet-Paket: System.Collections.Immutable (Grundlegendes zu unveränderlichen Sammlungen und deren Installation)

ImmutableSortedSet<T>.Builder

Stellt eine sortierte Gruppe dar, die Änderungen mit wenig oder keinen Speicherbelegungen ermöglicht und unveränderlich sortierte Gruppen effizient bearbeitet oder erstellt.

NuGet-Paket: System.Collections.Immutable (Grundlegendes zu unveränderlichen Sammlungen und deren Installation)

ImmutableSortedSet<T>

Stellt die Implementierung einer unveränderlichen sortierten Gruppe dar.

NuGet-Paket: System.Collections.Immutable (Grundlegendes zu unveränderlichen Sammlungen und deren Installation)

ImmutableStack

Stellt eine Reihe von Initialisierungsmethoden für Instanzen der ImmutableStack<T> Klasse bereit.

NuGet-Paket: System.Collections.Immutable (Grundlegendes zu unveränderlichen Sammlungen und deren Installation)

ImmutableStack<T>

Stellt einen unveränderlichen Stapel dar.

NuGet-Paket: System.Collections.Immutable (Grundlegendes zu unveränderlichen Sammlungen und deren Installation)

Strukturen

ImmutableArray<T>.Enumerator

Ein Array-Enumerator.

NuGet-Paket: System.Collections.Immutable (Grundlegendes zu unveränderlichen Sammlungen und deren Installation)

ImmutableArray<T>

Stellt ein Array dar, das unveränderlich ist; was bedeutet, dass es nach Erstellung nicht mehr geändert werden kann.

NuGet-Paket: System.Collections.Immutable (Grundlegendes zu unveränderlichen Sammlungen und deren Installation)

ImmutableDictionary<TKey,TValue>.Enumerator

Listet den Inhalt des unveränderlichen Wörterbuchs auf, ohne Arbeitsspeicher zuzuweisen.

NuGet-Paket: System.Collections.Immutable (Grundlegendes zu unveränderlichen Sammlungen und deren Installation)

ImmutableHashSet<T>.Enumerator

Listet den Inhalt des unveränderlichen Hashsets auf, ohne Arbeitsspeicher zuzuweisen.

NuGet-Paket: System.Collections.Immutable (Grundlegendes zu unveränderlichen Sammlungen und deren Installation)

ImmutableList<T>.Enumerator

Listet den Inhalt einer binären Struktur auf.

NuGet-Paket: System.Collections.Immutable (Grundlegendes zu unveränderlichen Sammlungen und deren Installation)

ImmutableQueue<T>.Enumerator

Listet den Inhalt von einer unveränderlichen Warteschlange auf, ohne Arbeitsspeicher zuzuweisen.

NuGet-Paket: System.Collections.Immutable (Grundlegendes zu unveränderlichen Sammlungen und deren Installation)

ImmutableSortedDictionary<TKey,TValue>.Enumerator

Listet den Inhalt einer binären Struktur auf.

NuGet-Paket: System.Collections.Immutable (Grundlegendes zu unveränderlichen Sammlungen und deren Installation)

ImmutableSortedSet<T>.Enumerator

Listet den Inhalt einer binären Struktur auf.

NuGet-Paket: System.Collections.Immutable (Grundlegendes zu unveränderlichen Sammlungen und deren Installation)

ImmutableStack<T>.Enumerator

Listet den Inhalt von einem unveränderlichen Stapel auf, ohne Arbeitsspeicher zuzuweisen.

NuGet-Paket: System.Collections.Immutable (Grundlegendes zu unveränderlichen Sammlungen und deren Installation)

Schnittstellen

IImmutableDictionary<TKey,TValue>

Stellt eine unveränderliche Auflistung von Schlüssel-Wert-Paaren dar.

NuGet-Paket: System.Collections.Immutable (Grundlegendes zu unveränderlichen Sammlungen und deren Installation)

IImmutableList<T>

Stellt eine Liste von Elementen dar, die nicht geändert werden kann.

NuGet-Paket: System.Collections.Immutable (Grundlegendes zu unveränderlichen Sammlungen und deren Installation)

IImmutableQueue<T>

Stellt eine unveränderliche FIFO-Auflistung (First-In-First-Out) von Objekten dar.

NuGet-Paket: System.Collections.Immutable (Grundlegendes zu unveränderlichen Sammlungen und deren Installation)

IImmutableSet<T>

Stellt eine Gruppe von Elementen dar, die nur durch Erstellen einer neuen Instanz der Gruppe geändert werden kann.

NuGet-Paket: System.Collections.Immutable (Grundlegendes zu unveränderlichen Sammlungen und deren Installation)

IImmutableStack<T>

Stellt eine unveränderliche LIFO (Last-In-First-Out)-Auflistung dar.

NuGet-Paket: System.Collections.Immutable (Grundlegendes zu unveränderlichen Sammlungen und deren Installation)

Hinweise

Mit unveränderlichen Auflistungen haben Sie folgende Möglichkeiten:

  • Geben Sie eine Sammlung so frei, dass Ihr Consumer sicher sein kann, dass sich die Sammlung nie ändert.

  • Bereitstellen impliziter Threadsicherheit in Multithreaded-Anwendungen (keine Sperren für den Zugriff auf Auflistungen erforderlich)

  • Einhalten funktionaler Programmierstile

  • Ändern einer Auflistung während der Enumeration, wobei sichergestellt wird, dass sich die ursprüngliche Auflistung nicht ändert

Die unveränderlichen Auflistungs Klassen sind in .net Core und .net 5 + verfügbar, sind jedoch nicht Teil der Kernklassen Bibliothek, die mit .NET Framework verteilt ist. Sie sind ab .NET Framework 4,5 über nuget verfügbar.

So installieren Sie die unveränderlichen Auflistungen über nuget:

  1. Öffnen Sie das Projekt in Visual Studio, und wählen Sie im Menü Projekt die Option nuget-Pakete verwalten aus.

  2. Aktivieren Sie optional das Kontrollkästchen Vorabversion einschließen .

    Mit dieser Option erhalten Sie Zugriff auf neue vorab Versionen der unveränderlichen Klassen, sobald Sie verfügbar werden.

  3. Verwenden Sie das Suchfeld , um das System. Collections. immutable -Paket zu suchen.

  4. Wählen Sie im linken Bereich das Paket System. Collections. immutable aus. Wählen Sie im rechten Bereich die gewünschte Version aus, und wählen Sie dann installieren aus.

Die oben beschriebenen Installationsschritte gelten für Visual Studio 2015. Bei anderen Versionen von Visual Studio unterscheiden sich die Schritte aufgrund von Unterschieden in der Benutzeroberfläche möglicherweise geringfügig.