System.Collections.Immutable Namespace

Contém interfaces e classes que definem coleções imutáveis.

Classes

ImmutableArray

Fornece métodos para criar uma matriz que é imutável, o que significa que ela não pode ser alterada depois de criada.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)

ImmutableArray<T>.Builder

Um acessador de matriz gravável que pode ser convertido em uma instância ImmutableArray<T> sem alocar memória extra.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)

ImmutableDictionary

Fornece um conjunto de métodos de inicialização para instâncias da classe ImmutableDictionary<TKey,TValue>.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)

ImmutableDictionary<TKey,TValue>.Builder

Representa um mapa de hash que se modifica com pouca ou nenhuma alocação de memória e que pode produzir ou criar instâncias de mapa de hash imutáveis de maneira muito eficiente.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)

ImmutableDictionary<TKey,TValue>

Representa uma coleção imutável, não ordenada de chaves e valores.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)

ImmutableHashSet

Fornece um conjunto de métodos de inicialização para instâncias da classe ImmutableHashSet<T>.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)

ImmutableHashSet<T>.Builder

Representa um conjunto de hash que se modifica com pouca ou nenhuma alocação de memória e que pode produzir ou criar instâncias de conjunto de hash imutáveis de maneira muito eficiente.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)

ImmutableHashSet<T>

Representa um conjunto de hash imutável não ordenado.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)

ImmutableInterlocked

Contém mecanismos de troca encaixados para coleções imutáveis.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)

ImmutableList

Fornece um conjunto de métodos de inicialização para instâncias da classe ImmutableList<T>.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)

ImmutableList<T>.Builder

Representa uma lista que muda com pouca ou nenhuma alocação de memória e que pode produzir ou criar instâncias de lista imutável de maneira muito eficiente.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)

ImmutableList<T>

Representa uma lista imutável, que é uma lista fortemente tipada de objetos que podem ser acessados por índice.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)

ImmutableQueue

Fornece um conjunto de métodos de inicialização para instâncias da classe ImmutableQueue<T>.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)

ImmutableQueue<T>

Representa uma fila imutável.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)

ImmutableSortedDictionary

Fornece um conjunto de métodos de inicialização para instâncias da classe ImmutableSortedDictionary<TKey,TValue>.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)

ImmutableSortedDictionary<TKey,TValue>.Builder

Representa um dicionário classificado que se modifica com pouca ou nenhuma alocação de memória e que pode produzir ou criar instâncias de dicionário classificado imutável de maneira muito eficiente.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)

ImmutableSortedDictionary<TKey,TValue>

Representa um dicionário classificado imutável.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)

ImmutableSortedSet

Fornece um conjunto de métodos de inicialização para instâncias da classe ImmutableSortedSet<T>.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)

ImmutableSortedSet<T>.Builder

Representa um conjunto classificado que permite alterações com pouca ou nenhuma alocação de memória e manipula ou cria conjuntos classificados imutáveis com eficiência.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)

ImmutableSortedSet<T>

Representa uma implementação de conjunto classificado imutável.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)

ImmutableStack

Fornece um conjunto de métodos de inicialização para instâncias da classe ImmutableStack<T>.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)

ImmutableStack<T>

Representa uma pilha imutável.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)

Estruturas

ImmutableArray<T>.Enumerator

Um enumerador de matriz.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)

ImmutableArray<T>

Representa uma matriz que é imutável, o que significa que ela não pode ser alterada depois de criada.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)

ImmutableDictionary<TKey,TValue>.Enumerator

Enumera o conteúdo do dicionário imutável sem qualquer alocação de memória.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)

ImmutableHashSet<T>.Enumerator

Enumera o conteúdo do conjunto de hash imutável sem qualquer alocação de memória.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)

ImmutableList<T>.Enumerator

Enumera o conteúdo de uma árvore binária.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)

ImmutableQueue<T>.Enumerator

Enumera o conteúdo de uma fila imutável sem qualquer alocação de memória.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)

ImmutableSortedDictionary<TKey,TValue>.Enumerator

Enumera o conteúdo de uma árvore binária.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)

ImmutableSortedSet<T>.Enumerator

Enumera o conteúdo de uma árvore binária.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)

ImmutableStack<T>.Enumerator

Enumera o conteúdo de uma pilha imutável sem qualquer alocação de memória.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)

Interfaces

IImmutableDictionary<TKey,TValue>

Representa uma coleção imutável de pares chave/valor.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)

IImmutableList<T>

Representa uma lista de elementos que não pode ser modificada.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)

IImmutableQueue<T>

Representa uma coleção imutável de objetos primeiro a entrar, primeiro a sair.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)

IImmutableSet<T>

Representa um conjunto de elementos que só pode ser modificado por meio da criação de uma nova instância do conjunto.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)

IImmutableStack<T>

Representa uma coleção imutável LIFO (último a entrar, primeiro a sair).

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)

Comentários

Com coleções imutáveis, você pode:

  • Compartilhe uma coleção de uma forma que seu consumidor possa ter certeza de que a coleção nunca muda.
  • Oferecer acesso thread-safe implícito em aplicativos com multithread (sem bloqueios necessários para acessar coleções).
  • Seguir práticas de programação funcionais.
  • Modificar uma coleção durante a enumeração, ao mesmo tempo em que assegura que a coleção original não será alterada.

As classes de coleção imutáveis estão disponíveis como parte das principais bibliotecas do .NET, no entanto, elas não fazem parte da biblioteca de classes principal distribuída com .NET Framework. Para .NET Framework aplicativos 4.6.2 e posteriores, as classes estão disponíveis por meio de pacotes NuGet.