System.Collections.Immutable Espacio de nombres

Contiene interfaces y clases que definen colecciones inmutables.

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.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)

ImmutableArray<T>.Builder

Descriptor de acceso de escritura de matriz que se puede convertir en una instancia ImmutableArray<T> sin asignar memoria adicional.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)

ImmutableDictionary

Proporciona un conjunto de métodos de inicialización para las instancias de la clase ImmutableDictionary<TKey,TValue>.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)

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.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)

ImmutableDictionary<TKey,TValue>

Representa una colección inmutable y no ordenada de claves y valores.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)

ImmutableHashSet

Proporciona un conjunto de métodos de inicialización para las instancias de la clase ImmutableHashSet<T>.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)

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.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)

ImmutableHashSet<T>

Representa un conjunto hash inmutable y sin ordenar.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)

ImmutableInterlocked

Contiene mecanismos de intercambio interbloqueados para colecciones inmutables.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)

ImmutableList

Proporciona un conjunto de métodos de inicialización para las instancias de la clase ImmutableList<T>.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)

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.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)

ImmutableList<T>

Representa una lista de objetos fuertemente tipados inmutable a la que se puede obtener acceso por índice.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)

ImmutableQueue

Proporciona un conjunto de métodos de inicialización para las instancias de la clase ImmutableQueue<T>.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)

ImmutableQueue<T>

Representa una cola inmutable.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)

ImmutableSortedDictionary

Proporciona un conjunto de métodos de inicialización para las instancias de la clase ImmutableSortedDictionary<TKey,TValue>.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)

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.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)

ImmutableSortedDictionary<TKey,TValue>

Representa un diccionario ordenado inmutable.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)

ImmutableSortedSet

Proporciona un conjunto de métodos de inicialización para las instancias de la clase ImmutableSortedSet<T>.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)

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.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)

ImmutableSortedSet<T>

Representa una implementación de un conjunto ordenado inmutable.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)

ImmutableStack

Proporciona un conjunto de métodos de inicialización para las instancias de la clase ImmutableStack<T>.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)

ImmutableStack<T>

Representa una pila inmutable.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)

Estructuras

ImmutableArray<T>.Enumerator

Enumerador de matriz.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)

ImmutableArray<T>

Representa una matriz que es inmutable, lo que significa que no se puede cambiar una vez que se crea.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)

ImmutableDictionary<TKey,TValue>.Enumerator

Enumera el contenido del diccionario inmutable sin asignar memoria.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)

ImmutableHashSet<T>.Enumerator

Enumera el contenido del conjunto hash inmutable sin asignar memoria.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)

ImmutableList<T>.Enumerator

Enumera el contenido de un árbol binario.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)

ImmutableQueue<T>.Enumerator

Enumera el contenido de una cola inmutable sin asignar memoria.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)

ImmutableSortedDictionary<TKey,TValue>.Enumerator

Enumera el contenido de un árbol binario.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)

ImmutableSortedSet<T>.Enumerator

Enumera el contenido de un árbol binario.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)

ImmutableStack<T>.Enumerator

Enumera el contenido de una pila inmutable sin asignar memoria.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)

Interfaces

IImmutableDictionary<TKey,TValue>

Representa una colección inmutable de pares de clave y valor.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)

IImmutableList<T>

Representa una lista de elementos que no se puede modificar.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)

IImmutableQueue<T>

Representa una colección de objetos de tipo primero en entrar, primero en salir inmutable.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)

IImmutableSet<T>

Representa un conjunto de elementos que solo pueden modificarse mediante la creación de una nueva instancia del conjunto.

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)

IImmutableStack<T>

Representa una colección de objetos LIFO (último en entrar, primero en salir).

Paquete NuGet: System.Collections.Immutable (sobre las colecciones inmutables y la instalación)

Comentarios

Con las colecciones inmutables, puede:

  • Comparta una colección de forma que su consumidor pueda estar seguro de que la colección nunca cambia.
  • 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 están disponibles como parte de las bibliotecas básicas de .NET, pero no forman parte de la biblioteca de clases principales distribuidas con .NET Framework. En el caso de las aplicaciones de .NET Framework 4.6.2 y versiones posteriores, las clases están disponibles a través de paquetes NuGet.