Para ver el artículo en inglés, active la casilla Inglés. También puede ver el texto en inglés en una ventana emergente si pasa el puntero del mouse por el texto.
Traducción
Inglés
Información
El tema que ha solicitado se muestra abajo. Sin embargo, este tema no se encuentra en la biblioteca.

Colecciones inmutables

.NET Framework (current version)

Nota importante Importante

Este tema se ha actualizado y el nuevo contenido se puede encontrar en el artículo Colecciones inmutables.

Puede suponer un reto mantener bajo control el estado mutable cuando hay varios subprocesos implicados. Un enfoque común consiste en utilizar un estado inmutable que se puede pasar libremente entre los distintos subprocesos. Las colecciones inmutables se diferencian de las colecciones de solo lectura en el sentido de que, a diferencia de las colecciones de solo lectura, el proveedor o el usuario de la colección no puede cambiarlas. Por ejemplo, mientras se enumera una colección de solo lectura, existe la posibilidad de que otro subproceso modifique la colección, lo que provocaría daños en los datos. Este escenario no se puede producir si utiliza una colección inmutable.

Con las colecciones inmutables, puede:

  • Compartir una colección de forma que el consumidor puede tener la seguridad de que la colección nunca cambiará.

  • Proporcionar seguridad para subprocesos implícita en aplicaciones multiproceso (no se necesitan bloqueos para tener acceso a las colecciones).

  • Seguir los procedimientos de programación funcional.

  • Modificar una colección durante la enumeración, mientras se garantiza que la colección original no cambia.

Las clases de colección inmutables se admiten desde .NET Framework 4.5. Utilícelas para crear aplicaciones cuya plataforma de destino sea el escritorio, Tienda Windows, Biblioteca de clases portable y Windows Phone 8.

Las clases inmutables no forman parte de la biblioteca de clases básica distribuida con .NET Framework; están disponibles a través de NuGet. Para instalar estas clases:

  1. Abra el proyecto en Visual Studio y elija Administrar paquetes NuGet en el menú Proyecto.

  2. En el panel de la izquierda, elija En línea.

  3. Si lo desea, en el cuadro de lista desplegable del panel central, elija Incluir versión preliminar en lugar de Solo estable. Esta opción le dará acceso a las nuevas versiones preliminares de las clases inmutables, a medida que vayan estando disponibles. (Para poder usar ImmutableArray, debe elegir Incluir versión preliminar).

  4. En el panel derecho, use el cuadro Buscar para buscar el paquete Microsoft.Immutable.Collections (Microsoft.Bcl.Immutable).

  5. En el panel central, seleccione Colecciones inmutables de Microsoft y, a continuación, elija Instalar.

El espacio de nombres System.Collections.Immutable proporciona varios tipos genéricos de colecciones inmutables que se pueden usar para estos escenarios, como son:

  • ImmutableArray (versión preliminar)

  • ImmutableDictionary

  • ImmutableSortedDictionary

  • ImmutableHashSet

  • ImmutableList

  • ImmutableQueue

  • ImmutableSortedSet

  • ImmutableStack

El espacio de nombres también contiene muchas clases admitidas. Por ejemplo, cada tipo de colección inmutable normalmente tiene un tipo de generador asociado que permite crear y manipular con facilidad y eficiencia una colección antes de convertirla en inmutable. Vea el espacio de nombres System.Collections.Immutable para obtener una lista completa de tipos y vínculos a contenido de referencia.

Mostrar: