System.Collections.Immutable Namespace

O namespace System.Collections.Immutable contém interfaces e classes que definem coleções imutáveis. The System.Collections.Immutable namespace contains interfaces and classes that define immutable collections.

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.Provides methods for creating an array that is immutable; meaning it cannot be changed once it is created.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableArray<T>.Builder

Um acessador de matriz gravável que pode ser convertido em uma instância ImmutableArray<T> sem alocar memória extra.A writable array accessor that can be converted into an ImmutableArray<T> instance without allocating extra memory.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableDictionary

Fornece um conjunto de métodos de inicialização para instâncias da classe ImmutableDictionary<TKey,TValue>.Provides a set of initialization methods for instances of the ImmutableDictionary<TKey,TValue> class.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

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.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.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableDictionary<TKey,TValue>

Representa uma coleção imutável, não ordenada de chaves e valores.Represents an immutable, unordered collection of keys and values.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableHashSet

Fornece um conjunto de métodos de inicialização para instâncias da classe ImmutableHashSet<T>.Provides a set of initialization methods for instances of the ImmutableHashSet<T> class.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

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.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.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableHashSet<T>

Representa um conjunto de hash imutável não ordenado.Represents an immutable, unordered hash set.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableInterlocked

Contém mecanismos de troca encaixados para coleções imutáveis.Contains interlocked exchange mechanisms for immutable collections.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableList

Fornece um conjunto de métodos de inicialização para instâncias da classe ImmutableList<T>.Provides a set of initialization methods for instances of the ImmutableList<T> class.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

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.Represents a list that mutates with little or no memory allocations and that can produce or build on immutable list instances very efficiently.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableList<T>

Representa uma lista imutável, que é uma lista fortemente tipada de objetos que podem ser acessados por índice.Represents an immutable list, which is a strongly typed list of objects that can be accessed by index.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableQueue

Fornece um conjunto de métodos de inicialização para instâncias da classe ImmutableQueue<T>.Provides a set of initialization methods for instances of the ImmutableQueue<T> class.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableQueue<T>

Representa uma fila imutável.Represents an immutable queue.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableSortedDictionary

Fornece um conjunto de métodos de inicialização para instâncias da classe ImmutableSortedDictionary<TKey,TValue>.Provides a set of initialization methods for instances of the ImmutableSortedDictionary<TKey,TValue> class.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

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.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.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableSortedDictionary<TKey,TValue>

Representa um dicionário classificado imutável.Represents an immutable sorted dictionary.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableSortedSet

Fornece um conjunto de métodos de inicialização para instâncias da classe ImmutableSortedSet<T>.Provides a set of initialization methods for instances of the ImmutableSortedSet<T> class.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

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.Represents a sorted set that enables changes with little or no memory allocations, and efficiently manipulates or builds immutable sorted sets.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableSortedSet<T>

Representa uma implementação de conjunto classificado imutável.Represents an immutable sorted set implementation.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableStack

Fornece um conjunto de métodos de inicialização para instâncias da classe ImmutableStack<T>.Provides a set of initialization methods for instances of the ImmutableStack<T> class.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableStack<T>

Representa uma pilha imutável.Represents an immutable stack.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

Estruturas

ImmutableArray<T>.Enumerator

Um enumerador de matriz.An array enumerator.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableArray<T>

Representa uma matriz que é imutável, o que significa que ela não pode ser alterada depois de criada.Represents an array that is immutable; meaning it cannot be changed once it is created.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableDictionary<TKey,TValue>.Enumerator

Enumera o conteúdo do dicionário imutável sem qualquer alocação de memória.Enumerates the contents of the immutable dictionary without allocating any memory.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableHashSet<T>.Enumerator

Enumera o conteúdo do conjunto de hash imutável sem qualquer alocação de memória.Enumerates the contents of the immutable hash set without allocating any memory.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableList<T>.Enumerator

Enumera o conteúdo de uma árvore binária.Enumerates the contents of a binary tree.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableQueue<T>.Enumerator

Enumera o conteúdo de uma fila imutável sem qualquer alocação de memória.Enumerates the contents of an immutable queue without allocating any memory.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableSortedDictionary<TKey,TValue>.Enumerator

Enumera o conteúdo de uma árvore binária.Enumerates the contents of a binary tree.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableSortedSet<T>.Enumerator

Enumera o conteúdo de uma árvore binária.Enumerates the contents of a binary tree.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

ImmutableStack<T>.Enumerator

Enumera o conteúdo de uma pilha imutável sem qualquer alocação de memória.Enumerates the contents of an immutable stack without allocating any memory.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

Interfaces

IImmutableDictionary<TKey,TValue>

Representa uma coleção imutável de pares chave/valor.Represents an immutable collection of key/value pairs.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

IImmutableList<T>

Representa uma lista de elementos que não pode ser modificada.Represents a list of elements that cannot be modified.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

IImmutableQueue<T>

Representa uma coleção imutável de objetos primeiro a entrar, primeiro a sair.Represents an immutable first-in, first-out collection of objects.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

IImmutableSet<T>

Representa um conjunto de elementos que só pode ser modificado por meio da criação de uma nova instância do conjunto.Represents a set of elements that can only be modified by creating a new instance of the set.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

IImmutableStack<T>

Representa uma coleção imutável LIFO (último a entrar, primeiro a sair).Represents an immutable last-in-first-out (LIFO) collection.

Pacote NuGet: System.Collections.Immutable (sobre coleções imutáveis e como instalá-las)NuGet package: System.Collections.Immutable (about immutable collections and how to install)

Comentários

Com coleções imutáveis, você pode:With immutable collections, you can:

  • Compartilhe uma coleção de forma que seu consumidor possa ter certeza de que a coleção nunca será alterada.Share a collection in a way that its consumer can be assured that the collection never changes.

  • Oferecer acesso thread-safe implícito em aplicativos com multithread (sem bloqueios necessários para acessar coleções).Provide implicit thread safety in multi-threaded applications (no locks required to access collections).

  • Seguir práticas de programação funcionais.Follow functional programming practices.

  • Modificar uma coleção durante a enumeração, ao mesmo tempo em que assegura que a coleção original não será alterada.Modify a collection during enumeration, while ensuring that the original collection does not change.

As classes de coleção imutáveis estão disponíveis com o .NET Core, no entanto, elas não fazem parte da biblioteca de classes principal distribuída com o .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. Eles estão disponíveis a partir do .NET Framework 4,5 por meio do NuGet.They're available starting with the .NET Framework 4.5 via NuGet.

Para instalar as coleções imutáveis por meio do NuGet:To install the immutable collections via NuGet:

  1. Abra seu projeto no Visual Studio e escolha gerenciar pacotes NuGet no menu projeto .Open your project in Visual Studio and choose Manage NuGet Packages from the Project menu.

  2. Opcionalmente, marque a caixa de seleção incluir pré-lançamento .Optionally, select the Include prerelease checkbox. Essa opção oferece acesso a novas versões de pré-lançamento das classes imutáveis, conforme elas forem disponibilizadas.This option will give you access to new prerelease versions of the immutable classes, as they become available.

  3. Use a caixa de pesquisa para localizar o pacote System. Collections. imutável .Use the Search box to locate the System.Collections.Immutable package.

  4. No painel esquerdo, selecione o pacote System. Collections. imutável .In the left pane, select the System.Collections.Immutable package. No painel direito, selecione a versão desejada e escolha instalar.In the right pane, select the desired version and then choose Install.

As etapas de instalação descritas acima são para o Visual Studio 2015.The installation steps described above are for Visual Studio 2015. Para outras versões do Visual Studio, as etapas podem ser um pouco diferentes devido às diferenças na interface do usuário.For other versions of Visual Studio, the steps might be slightly different because of differences in the user interface (UI).