System.Collections.Immutable Spazio dei nomi

Contiene interfacce e classi che definiscono raccolte non modificabili.

Classi

ImmutableArray

Fornisce i metodi per creare una matrice non modificabile, ovvero che non può essere modificata una volta che è stata creata.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)

ImmutableArray<T>.Builder

Funzione di accesso alla matrice scrivibile che può essere convertita in un'istanza ImmutableArray<T> senza allocare memoria aggiuntiva.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)

ImmutableDictionary

Fornisce un set di metodi di inizializzazione per le istanze della classe ImmutableDictionary<TKey,TValue>.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)

ImmutableDictionary<TKey,TValue>.Builder

Rappresenta una mappa di hash che viene modificata con allocazioni di memoria minime o nulle e in grado di produrre o compilare su istanze di mappa di hash non modificabili in modo molto efficiente.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)

ImmutableDictionary<TKey,TValue>

Rappresenta una raccolta non modificabile e non ordinata di chiavi e valori.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)

ImmutableHashSet

Fornisce un set di metodi di inizializzazione per le istanze della classe ImmutableHashSet<T>.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)

ImmutableHashSet<T>.Builder

Rappresenta un set di hash che viene modificato con allocazioni di memoria minime o nulle e in grado di produrre o compilare su istanze di set di hash non modificabili in modo molto efficiente.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)

ImmutableHashSet<T>

Rappresenta un set di hash non modificabile e non ordinato.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)

ImmutableInterlocked

Contiene meccanismi di scambio con interlock per le raccolte non modificabili.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)

ImmutableList

Fornisce un set di metodi di inizializzazione per le istanze della classe ImmutableList<T>.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)

ImmutableList<T>.Builder

Rappresenta un elenco che viene modificato con allocazioni di memoria minime o nulle e in grado di produrre o compilare su istanze di elenchi non modificabili in modo molto efficiente.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)

ImmutableList<T>

Rappresenta un elenco non modificabile, ovvero un elenco di oggetti fortemente tipizzato accessibile in base all'indice.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)

ImmutableQueue

Fornisce un set di metodi di inizializzazione per le istanze della classe ImmutableQueue<T>.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)

ImmutableQueue<T>

Rappresenta una coda non modificabile.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)

ImmutableSortedDictionary

Fornisce un set di metodi di inizializzazione per le istanze della classe ImmutableSortedDictionary<TKey,TValue>.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)

ImmutableSortedDictionary<TKey,TValue>.Builder

Rappresenta un dizionario ordinato che viene modificato con allocazioni di memoria minime o nulle e in grado di produrre o compilare su istanze di dizionario ordinato non modificabili in modo molto efficiente.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)

ImmutableSortedDictionary<TKey,TValue>

Rappresenta un dizionario ordinato non modificabile.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)

ImmutableSortedSet

Fornisce un set di metodi di inizializzazione per le istanze della classe ImmutableSortedSet<T>.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)

ImmutableSortedSet<T>.Builder

Rappresenta un set ordinato che consente di apportare modifiche con allocazioni di memoria minime o nulle e modifica o compila in modo efficiente set ordinati non modificabili.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)

ImmutableSortedSet<T>

Rappresenta l'implementazione di un set ordinato non modificabile.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)

ImmutableStack

Fornisce un set di metodi di inizializzazione per le istanze della classe ImmutableStack<T>.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)

ImmutableStack<T>

Rappresenta uno stack non modificabile.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)

Struct

ImmutableArray<T>.Enumerator

Enumeratore di matrice.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)

ImmutableArray<T>

Rappresenta una matrice non modificabile, ovvero che non può essere modificata una volta che è stata creata.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)

ImmutableDictionary<TKey,TValue>.Enumerator

Enumera il contenuto del dizionario non modificabile senza allocare memoria.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)

ImmutableHashSet<T>.Enumerator

Enumera il contenuto del set di hash non modificabile senza allocare memoria.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)

ImmutableList<T>.Enumerator

Enumera il contenuto di un albero binario.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)

ImmutableQueue<T>.Enumerator

Enumera il contenuto di una coda non modificabile senza allocare memoria.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)

ImmutableSortedDictionary<TKey,TValue>.Enumerator

Enumera il contenuto di un albero binario.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)

ImmutableSortedSet<T>.Enumerator

Enumera il contenuto di un albero binario.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)

ImmutableStack<T>.Enumerator

Enumera il contenuto di uno stack non modificabile senza allocare memoria.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)

Interfacce

IImmutableDictionary<TKey,TValue>

Rappresenta una raccolta non modificabile di coppie chiave/valore.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)

IImmutableList<T>

Rappresenta un elenco di elementi che non possono essere modificati.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)

IImmutableQueue<T>

Rappresenta una raccolta di oggetti FIFO (First-In First-Out) non modificabile.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)

IImmutableSet<T>

Rappresenta un set di elementi che è possibile modificare solo creando una nuova istanza del set.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)

IImmutableStack<T>

Rappresenta una raccolta LIFO (Last In, First Out) non modificabile.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)

Commenti

Con le raccolte non modificabili, è possibile:

  • Condividere una raccolta in modo che l'utente possa assicurarsi che la raccolta non cambi mai.

  • Fornire thread safety implicita nelle applicazioni multithreading (non è necessario alcun blocco per accedere alle raccolte).

  • Seguire le procedure della programmazione funzionale.

  • Modificare una raccolta durante l'enumerazione, con la certezza che la raccolta originale non subirà modifiche.

Le classi Collection non modificabili sono disponibili con .NET Core e .NET 5 +, ma non fanno parte della libreria di classi principale distribuita con .NET Framework. Sono disponibili a partire da .NET Framework 4,5 tramite NuGet.

Per installare le raccolte non modificabili tramite NuGet:

  1. Aprire il progetto in Visual Studio e scegliere Gestisci pacchetti NuGet dal menu progetto .

  2. Facoltativamente, selezionare la casella di controllo Includi versione preliminare .

    Questa opzione consente di accedere a nuove versioni provvisorie delle classi non modificabili, non appena diventano disponibili.

  3. Utilizzare la casella di ricerca per individuare il pacchetto System. Collections. Immutable .

  4. Nel riquadro sinistro selezionare il pacchetto System. Collections. Immutable . Nel riquadro destro selezionare la versione desiderata, quindi scegliere Installa.

La procedura di installazione descritta in precedenza è per Visual Studio 2015. Per le altre versioni di Visual Studio, i passaggi potrebbero essere leggermente diversi a causa delle differenze nell'interfaccia utente (UI).