Condividi tramite


Raccolte non modificabili

Importante

Questo argomento è stato aggiornato e il contenuto aggiornato è reperibile nell'articolo Raccolte non modificabili.

Mantenere sotto controllo lo stato modificabile quando sono coinvolti più thread può risultare impegnativo. Un approccio comune consiste nell'usare lo stato non modificabile, che può essere passato liberamente tra diversi thread. Le raccolte non modificabili sono diverse dalle raccolte di sola lettura nel senso che, a differenza di queste ultime, non possono essere modificate dal provider o dall'utente della raccolta. Se ad esempio si sta enumerando una raccolta di sola lettura, esiste la possibilità che essa possa essere modificata in un altro thread, causando il danneggiamento dei dati. Questo scenario non può verificarsi quando si usa una raccolta non modificabile.

Con le raccolte non modificabili, è possibile:

  • Condividere una raccolta in modo che l'utente possa essere certo che il contenuto non verrà mai modificato.

  • 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 raccolte non modificabili sono supportate a partire da .NET Framework 4.5. Usarle per compilare app destinate al desktop, a Windows Store, Libreria di classi portabile e a Windows Phone 8.

Per installare le raccolte non modificabili

Le classi non modificabili non fanno parte della libreria di classi principale distribuita con .NET Framework, ma sono disponibili tramite NuGet. Per installarle:

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

  2. Nel riquadro sinistro scegliere Online.

  3. Facoltativamente, nella casella di riepilogo dell'elenco a discesa nel riquadro centrale, scegliere Includi versione provvisoria invece di Solo stabile. Questa opzione consentirà l'accesso a nuove versioni non definitive delle classi non modificabili, non appena queste vengono rese disponibili. Per usare ImmutableArray è necessario scegliere Includi versione provvisoria.

  4. Nel riquadro a destra, usare la finestra Cerca per trovare il pacchetto Microsoft.Immutable.Collections (Microsoft.Bcl.Immutable).

  5. Nel riquadro centrale, selezionare Raccolte non modificabili di Microsoft, quindi scegliere Installa.

Classi non modificabili

Lo spazio dei nomi System.Collections.Immutable fornisce tipi generici di raccolte non modificabili che possono essere usati per questi scenari e che includono:

  • ImmutableArray (versione provvisoria)

  • ImmutableDictionary

  • ImmutableSortedDictionary

  • ImmutableHashSet

  • ImmutableList

  • ImmutableQueue

  • ImmutableSortedSet

  • ImmutableStack

Lo spazio dei nomi contiene anche molte classi di supporto. A ogni tipo di raccolta non modificabile, ad esempio, è in genere associato un tipo di generatore che consente di creare e modificare una raccolta in modo facile ed efficace, prima di renderla non modificabile. Vedere lo spazio dei nomi System.Collections.Immutable per un elenco completo di tipi e collegamenti ai contenuti di riferimento.

Vedere anche

Concetti

Raccolte generiche in .NET Framework

Altre risorse

Raccolte e strutture di dati