System.Collections.Immutable Spazio dei nomi

Lo spazio dei nomi System.Collections.Immutable contiene interfacce e classi che definiscono raccolte non modificabili. The System.Collections.Immutable namespace contains interfaces and classes that define immutable collections.

Classi

ImmutableArray

Fornisce i metodi per creare una matrice non modificabile, ovvero che non può essere modificata una volta che è stata creata.Provides methods for creating an array that is immutable; meaning it cannot be changed once it is created.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableArray<T>.Builder

Funzione di accesso alla matrice scrivibile che può essere convertita in un'istanza ImmutableArray<T> senza allocare memoria aggiuntiva.A writable array accessor that can be converted into an ImmutableArray<T> instance without allocating extra memory.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableDictionary

Fornisce un set di metodi di inizializzazione per le istanze della classe ImmutableDictionary<TKey,TValue>.Provides a set of initialization methods for instances of the ImmutableDictionary<TKey,TValue> class.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

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.Represents a hash map that mutates with little or no memory allocations and that can produce or build on immutable hash map instances very efficiently.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableDictionary<TKey,TValue>

Rappresenta una raccolta non modificabile e non ordinata di chiavi e valori.Represents an immutable, unordered collection of keys and values.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableHashSet

Fornisce un set di metodi di inizializzazione per le istanze della classe ImmutableHashSet<T>.Provides a set of initialization methods for instances of the ImmutableHashSet<T> class.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

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.Represents a hash set that mutates with little or no memory allocations and that can produce or build on immutable hash set instances very efficiently.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableHashSet<T>

Rappresenta un set di hash non modificabile e non ordinato.Represents an immutable, unordered hash set.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableInterlocked

Contiene meccanismi di scambio con interlock per le raccolte non modificabili.Contains interlocked exchange mechanisms for immutable collections.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableList

Fornisce un set di metodi di inizializzazione per le istanze della classe ImmutableList<T>.Provides a set of initialization methods for instances of the ImmutableList<T> class.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

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.Represents a list that mutates with little or no memory allocations and that can produce or build on immutable list instances very efficiently.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableList<T>

Rappresenta un elenco non modificabile, ovvero un elenco di oggetti fortemente tipizzato accessibile in base all'indice.Represents an immutable list, which is a strongly typed list of objects that can be accessed by index.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableQueue

Fornisce un set di metodi di inizializzazione per le istanze della classe ImmutableQueue<T>.Provides a set of initialization methods for instances of the ImmutableQueue<T> class.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableQueue<T>

Rappresenta una coda non modificabile.Represents an immutable queue.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableSortedDictionary

Fornisce un set di metodi di inizializzazione per le istanze della classe ImmutableSortedDictionary<TKey,TValue>.Provides a set of initialization methods for instances of the ImmutableSortedDictionary<TKey,TValue> class.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

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.Represents a sorted dictionary that mutates with little or no memory allocations and that can produce or build on immutable sorted dictionary instances very efficiently.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableSortedDictionary<TKey,TValue>

Rappresenta un dizionario ordinato non modificabile.Represents an immutable sorted dictionary.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableSortedSet

Fornisce un set di metodi di inizializzazione per le istanze della classe ImmutableSortedSet<T>.Provides a set of initialization methods for instances of the ImmutableSortedSet<T> class.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

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.Represents a sorted set that enables changes with little or no memory allocations, and efficiently manipulates or builds immutable sorted sets.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableSortedSet<T>

Rappresenta l'implementazione di un set ordinato non modificabile.Represents an immutable sorted set implementation.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableStack

Fornisce un set di metodi di inizializzazione per le istanze della classe ImmutableStack<T>.Provides a set of initialization methods for instances of the ImmutableStack<T> class.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableStack<T>

Rappresenta uno stack non modificabile.Represents an immutable stack.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

Struct

ImmutableArray<T>.Enumerator

Enumeratore di matrice.An array enumerator.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableArray<T>

Rappresenta una matrice non modificabile, ovvero che non può essere modificata una volta che è stata creata.Represents an array that is immutable; meaning it cannot be changed once it is created.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableDictionary<TKey,TValue>.Enumerator

Enumera il contenuto del dizionario non modificabile senza allocare memoria.Enumerates the contents of the immutable dictionary without allocating any memory.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableHashSet<T>.Enumerator

Enumera il contenuto del set di hash non modificabile senza allocare memoria.Enumerates the contents of the immutable hash set without allocating any memory.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableList<T>.Enumerator

Enumera il contenuto di un albero binario.Enumerates the contents of a binary tree.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableQueue<T>.Enumerator

Enumera il contenuto di una coda non modificabile senza allocare memoria.Enumerates the contents of an immutable queue without allocating any memory.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableSortedDictionary<TKey,TValue>.Enumerator

Enumera il contenuto di un albero binario.Enumerates the contents of a binary tree.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableSortedSet<T>.Enumerator

Enumera il contenuto di un albero binario.Enumerates the contents of a binary tree.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableStack<T>.Enumerator

Enumera il contenuto di uno stack non modificabile senza allocare memoria.Enumerates the contents of an immutable stack without allocating any memory.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

Interfacce

IImmutableDictionary<TKey,TValue>

Rappresenta una raccolta non modificabile di coppie chiave/valore.Represents an immutable collection of key/value pairs.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

IImmutableList<T>

Rappresenta un elenco di elementi che non possono essere modificati.Represents a list of elements that cannot be modified.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

IImmutableQueue<T>

Rappresenta una raccolta di oggetti FIFO (First-In First-Out) non modificabile.Represents an immutable first-in, first-out collection of objects.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

IImmutableSet<T>

Rappresenta un set di elementi che è possibile modificare solo creando una nuova istanza del set.Represents a set of elements that can only be modified by creating a new instance of the set.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

IImmutableStack<T>

Rappresenta una raccolta LIFO (Last In, First Out) non modificabile.Represents an immutable last-in-first-out (LIFO) collection.

Pacchetto NuGet: System.Collections.Immutable (informazioni sulle raccolte non modificabili e su come installarle)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

Commenti

Con le raccolte non modificabili, è possibile:With immutable collections, you can:

  • Condividere una raccolta in modo che l'utente possa assicurarsi che la raccolta non cambi mai.Share a collection in a way that its consumer can be assured that the collection never changes.

  • Fornire thread safety implicita nelle applicazioni multithreading (non è necessario alcun blocco per accedere alle raccolte).Provide implicit thread safety in multi-threaded applications (no locks required to access collections).

  • Seguire le procedure della programmazione funzionale.Follow functional programming practices.

  • Modificare una raccolta durante l'enumerazione, con la certezza che la raccolta originale non subirà modifiche.Modify a collection during enumeration, while ensuring that the original collection does not change.

Le classi Collection non modificabili sono disponibili con .NET Core, ma non fanno parte della libreria di classi principale distribuita con il .NET Framework.The immutable collection classes are available with .NET Core, however they're not part of the core class library distributed with the .NET Framework. Sono disponibili a partire dalla .NET Framework 4,5 tramite NuGet.They're available starting with the .NET Framework 4.5 via NuGet.

Per installare le raccolte non modificabili tramite NuGet:To install the immutable collections via NuGet:

  1. Aprire il progetto in Visual Studio e scegliere Gestisci pacchetti NuGet dal menu progetto .Open your project in Visual Studio and choose Manage NuGet Packages from the Project menu.

  2. Facoltativamente, selezionare la casella di controllo Includi versione preliminare .Optionally, select the Include prerelease checkbox. Questa opzione consentirà l'accesso a nuove versioni non definitive delle classi non modificabili, non appena queste vengono rese disponibili.This option will give you access to new prerelease versions of the immutable classes, as they become available.

  3. Utilizzare la casella di ricerca per individuare il pacchetto System. Collections. Immutable .Use the Search box to locate the System.Collections.Immutable package.

  4. Nel riquadro sinistro selezionare il pacchetto System. Collections. Immutable .In the left pane, select the System.Collections.Immutable package. Nel riquadro destro selezionare la versione desiderata, quindi scegliere Installa.In the right pane, select the desired version and then choose Install.

La procedura di installazione descritta in precedenza è per Visual Studio 2015.The installation steps described above are for Visual Studio 2015. Per le altre versioni di Visual Studio, i passaggi potrebbero essere leggermente diversi a causa delle differenze nell'interfaccia utente (UI).For other versions of Visual Studio, the steps might be slightly different because of differences in the user interface (UI).