System.Collections.Immutable Namespace

El espacio de nombres System.Collections.Immutable contiene interfaces y clases que definen colecciones inmutables. The System.Collections.Immutable namespace contains interfaces and classes that define immutable collections. Estas clases se admiten a partir de .NET Framework 4.5.NET Framework 4.5. These classes are supported starting with .NET Framework 4.5.NET Framework 4.5. Utilícelas para crear aplicaciones cuya plataforma de destino sea el escritorio, Tienda WindowsWindows Store, Biblioteca de clases portablePortable Class Library y Windows Phone 8. Use them to build apps that target the desktop, Tienda WindowsWindows Store, Biblioteca de clases portablePortable Class Library and Windows Phone 8.

Clases

ImmutableArray

Proporciona métodos para crear una matriz que es inmutable, lo que significa que no se puede cambiar una vez que se crea.Provides methods for creating an array that is immutable; meaning it cannot be changed once it is created.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableArray<T>.Builder

Descriptor de acceso de escritura de matriz que se puede convertir en una instancia ImmutableArray<T> sin asignar memoria adicional.A writable array accessor that can be converted into an ImmutableArray<T> instance without allocating extra memory.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y el procedimiento de instalación)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableDictionary

Proporciona un conjunto de métodos de inicialización para las instancias de la clase ImmutableDictionary<TKey,TValue>.Provides a set of initialization methods for instances of the ImmutableDictionary<TKey,TValue> class.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableDictionary<TKey,TValue>.Builder

Representa un mapa hash que transforma con poca o ninguna asignación de memoria y que puede generar o compilar instancias de mapa hash inmutables muy eficazmente.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.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y el procedimiento de instalación)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableDictionary<TKey,TValue>

Representa una colección inmutable y no ordenada de claves y valores.Represents an immutable, unordered collection of keys and values.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y el procedimiento de instalación)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableHashSet

Proporciona un conjunto de métodos de inicialización para las instancias de la clase ImmutableHashSet<T>.Provides a set of initialization methods for instances of the ImmutableHashSet<T> class.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableHashSet<T>.Builder

Representa un conjunto de hash que transforma con poca o ninguna asignación de memoria y que puede generar o compilar instancias de conjunto hash inmutables muy eficazmente.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.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y el procedimiento de instalación)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableHashSet<T>

Representa un conjunto hash inmutable y sin ordenar.Represents an immutable, unordered hash set.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableInterlocked

Contiene mecanismos de intercambio interbloqueados para colecciones inmutables.Contains interlocked exchange mechanisms for immutable collections.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableList

Proporciona un conjunto de métodos de inicialización para las instancias de la clase ImmutableList<T>.Provides a set of initialization methods for instances of the ImmutableList<T> class.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableList<T>.Builder

Representa una lista que se transforma con poca o ninguna asignación de memoria y que puede generar o compilar instancias de lista inmutables muy eficazmente.Represents a list that mutates with little or no memory allocations and that can produce or build on immutable list instances very efficiently.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableList<T>

Representa una lista de objetos fuertemente tipados inmutable a la que se puede obtener acceso por índice.Represents an immutable list, which is a strongly typed list of objects that can be accessed by index.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y el procedimiento de instalación)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableQueue

Proporciona un conjunto de métodos de inicialización para las instancias de la clase ImmutableQueue<T>.Provides a set of initialization methods for instances of the ImmutableQueue<T> class.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableQueue<T>

Representa una cola inmutable.Represents an immutable queue.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableSortedDictionary

Proporciona un conjunto de métodos de inicialización para las instancias de la clase ImmutableSortedDictionary<TKey,TValue>.Provides a set of initialization methods for instances of the ImmutableSortedDictionary<TKey,TValue> class.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableSortedDictionary<TKey,TValue>.Builder

Representa un diccionario ordenado que se transforma con poca o ninguna asignación de memoria y que puede generar o compilar instancias de diccionario ordenado inmutable muy eficazmente.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.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y el procedimiento de instalación)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableSortedDictionary<TKey,TValue>

Representa un diccionario ordenado inmutable.Represents an immutable sorted dictionary.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableSortedSet

Proporciona un conjunto de métodos de inicialización para las instancias de la clase ImmutableSortedSet<T>.Provides a set of initialization methods for instances of the ImmutableSortedSet<T> class.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableSortedSet<T>.Builder

Representa un conjunto ordenado que permite cambios con poca o ninguna asignación de memoria y manipula o crea eficazmente conjuntos ordenados inmutables.Represents a sorted set that enables changes with little or no memory allocations, and efficiently manipulates or builds immutable sorted sets.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y el procedimiento de instalación)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableSortedSet<T>

Representa una implementación de un conjunto ordenado inmutable.Represents an immutable sorted set implementation.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y el procedimiento de instalación)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableStack

Proporciona un conjunto de métodos de inicialización para las instancias de la clase ImmutableStack<T>.Provides a set of initialization methods for instances of the ImmutableStack<T> class.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableStack<T>

Representa una pila inmutable.Represents an immutable stack.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

Estructuras

ImmutableArray<T>.Enumerator

Enumerador de matriz.An array enumerator.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y el procedimiento de instalación)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableArray<T>

Representa una matriz que es inmutable, lo que significa que no se puede cambiar una vez que se crea.Represents an array that is immutable; meaning it cannot be changed once it is created.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y el procedimiento de instalación)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableDictionary<TKey,TValue>.Enumerator

Enumera el contenido del diccionario inmutable sin asignar memoria.Enumerates the contents of the immutable dictionary without allocating any memory.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableHashSet<T>.Enumerator

Enumera el contenido del conjunto hash inmutable sin asignar memoria.Enumerates the contents of the immutable hash set without allocating any memory.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableList<T>.Enumerator

Enumera el contenido de un árbol binario.Enumerates the contents of a binary tree.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y el procedimiento de instalación)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableQueue<T>.Enumerator

Enumera el contenido de una cola inmutable sin asignar memoria.Enumerates the contents of an immutable queue without allocating any memory.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableSortedDictionary<TKey,TValue>.Enumerator

Enumera el contenido de un árbol binario.Enumerates the contents of a binary tree.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y el procedimiento de instalación)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableSortedSet<T>.Enumerator

Enumera el contenido de un árbol binario.Enumerates the contents of a binary tree.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y el procedimiento de instalación)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableStack<T>.Enumerator

Enumera el contenido de una pila inmutable sin asignar memoria.Enumerates the contents of an immutable stack without allocating any memory.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

Interfaces

IImmutableDictionary<TKey,TValue>

Representa una colección inmutable de pares de clave y valor.Represents an immutable collection of key/value pairs.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y el procedimiento de instalación)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

IImmutableList<T>

Representa una lista de elementos que no se puede modificar.Represents a list of elements that cannot be modified.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y el procedimiento de instalación)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

IImmutableQueue<T>

Representa una colección de objetos de tipo primero en entrar, primero en salir inmutable.Represents an immutable first-in, first-out collection of objects.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y el procedimiento de instalación)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

IImmutableSet<T>

Representa un conjunto de elementos que solo pueden modificarse mediante la creación de una nueva instancia del conjunto.Represents a set of elements that can only be modified by creating a new instance of the set.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y el procedimiento de instalación)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

IImmutableStack<T>

Representa una colección de objetos LIFO (último en entrar, primero en salir).Represents an immutable last-in-first-out (LIFO) collection.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y el procedimiento de instalación)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

Comentarios

Con las colecciones inmutables, puede:With immutable collections, you can:

  • Compartir una colección de forma que el consumidor puede estar seguro de que nunca cambia la colección.Share a collection in a way that its consumer can be assured that the collection never changes.

  • Proporcionar seguridad para subprocesos implícita en aplicaciones multiproceso (no se necesitan bloqueos para tener acceso a las colecciones).Provide implicit thread safety in multi-threaded applications (no locks required to access collections).

  • Seguir los procedimientos de programación funcional.Follow functional programming practices.

  • Modificar una colección durante la enumeración, mientras se garantiza que la colección original no cambia.Modify a collection during enumeration, while ensuring that the original collection does not change.

Las clases de colección inmutables están disponibles con .NET Core, pero que no son parte de la biblioteca de clases básica distribuida con .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. Están disponibles a partir de .NET Framework 4.5 a través de NuGet.They're available starting with the .NET Framework 4.5 via NuGet.

Para instalar las colecciones inmutables a través de NuGet:To install the immutable collections via NuGet:

  1. Abra el proyecto en Visual Studio y elija administrar paquetes de NuGet desde el proyecto menú.Open your project in Visual Studio and choose Manage NuGet Packages from the Project menu.

  2. Si lo desea, seleccione el incluir versión preliminar casilla de verificación.Optionally, select the Include prerelease checkbox. Esta opción le dará acceso a las nuevas versiones preliminares de las clases inmutables, a medida que vayan estando disponibles.This option will give you access to new prerelease versions of the immutable classes, as they become available.

  3. Use la búsqueda para buscar el System.Collections.Immutable paquete.Use the Search box to locate the System.Collections.Immutable package.

  4. En el panel izquierdo, seleccione el System.Collections.Immutable paquete.In the left pane, select the System.Collections.Immutable package. En el panel derecho, seleccione la versión deseada y, a continuación, elija instalar.In the right pane, select the desired version and then choose Install.

Son los pasos de instalación se ha descrito anteriormente para Visual Studio 2015.The installation steps described above are for Visual Studio 2015. Para otras versiones de Visual Studio, los pasos podrían ser ligeramente diferentes debido a diferencias en la interfaz de usuario (UI).For other versions of Visual Studio, the steps might be slightly different because of differences in the user interface (UI).