F # - Dicionário mutável

o Dictionary<'TKey, 'TValue> classe é o análogo mutável da estrutura de dados do mapa F # e contém muitas das mesmas funções.

Recapitulando do capítulo Mapa em F #, um mapa é um tipo especial de conjunto que associa os valores à chave.

Criação de um dicionário mutável

Dicionários mutáveis ​​são criados usando o newpalavra-chave e chamando o construtor da lista. O exemplo a seguir demonstra isso -

open System.Collections.Generic
let dict = new Dictionary<string, string>()
dict.Add("1501", "Zara Ali")
dict.Add("1502","Rishita Gupta")
dict.Add("1503","Robin Sahoo")
dict.Add("1504","Gillian Megan")
printfn "Dictionary - students: %A" dict

Quando você compila e executa o programa, ele produz a seguinte saída -

Dictionary - students: seq
[[1501, Zara Ali]; [1502, Rishita Gupta]; [1503, Robin Sahoo];
[1504, Gillian Megan]]

A classe de dicionário (TKey, TValue)

A classe Dictionary (TKey, TValue) representa uma coleção de chaves e valores.

As tabelas a seguir fornecem as propriedades, construtores e métodos da classe List (T) -

Propriedades

Propriedade Descrição
Comparer Obtém o IEqualityComparer (T) que é usado para determinar a igualdade das chaves do dicionário.
Contagem Obtém o número de pares de chave / valor contidos no Dicionário (TKey, TValue).
Item Obtém ou define o valor associado à chave especificada.
Chaves Obtém uma coleção contendo as chaves do Dicionário (TKey, TValue).
Valores Obtém uma coleção contendo os valores do Dicionário (TKey, TValue).

Construtores

Construtores Descrição
Dicionário (TKey, TValue) () Inicializa uma nova instância do Dictionary(TKey, TValue) classe que está vazia, tem a capacidade inicial padrão e usa o comparador de igualdade padrão para o tipo de chave.
Dicionário (TKey, TValue) (IDictionary (TKey, TValue)) Inicializa uma nova instância do Dictionary(TKey, TValue) classe que contém elementos copiados do especificado IDictionary(TKey, TValue) e usa o comparador de igualdade padrão para o tipo de chave.
Dicionário (TKey, TValue) (IEqualityComparer (TKey)) Inicializa uma nova instância do Dictionary(TKey, TValue) classe que está vazia, tem a capacidade inicial padrão e usa o especificado IEqualityComparer(T).
Dicionário (TKey, TValue) (Int32) Inicializa uma nova instância do Dictionary(TKey, TValue) classe que está vazia, tem a capacidade inicial especificada e usa o comparador de igualdade padrão para o tipo de chave.
Dicionário (TKey, TValue) (IDictionary (TKey, TValue), IEqualityComparer (TKey)) Inicializa uma nova instância do Dictionary(TKey, TValue) classe que contém elementos copiados do especificado IDictionary(TKey, TValue) e usa o especificado IEqualityComparer(T).
Dicionário (TKey, TValue) (Int32, IEqualityComparer (TKey)) Inicializa uma nova instância do Dictionary(TKey, TValue) classe que está vazia, tem a capacidade inicial especificada e usa o especificado IEqualityComparer(T).
Dicionário (TKey, TValue) (SerializationInfo, StreamingContext) Inicializa uma nova instância do ictionary(TKey, TValue) classe com dados serializados.

Métodos

Método Descrição
Adicionar Adiciona a chave e o valor especificados ao dicionário.
Claro Remove todas as chaves e valores do Dicionário (TKey, TValue).
ContainsKey Determina se o Dicionário (TKey, TValue) contém a chave especificada.
ContainsValue Determina se o Dicionário (TKey, TValue) contém um valor específico.
Igual a (objeto) Determina se o objeto especificado é igual ao objeto atual. (Herdado do objeto.)
Finalizar Permite que um objeto tente liberar recursos e realizar outras operações de limpeza antes de ser recuperado pela coleta de lixo. (Herdado do objeto.)
GetEnumerator Retorna um enumerador que itera por meio do Dicionário (TKey, TValue).
GetHashCode Serve como a função hash padrão. (Herdado do objeto.)
GetObjectData Implementa a interface System.Runtime.Serialization.ISerializable e retorna os dados necessários para serializar a instância do Dicionário (TKey, TValue).
GetType Obtém o tipo da instância atual. (Herdado do objeto.)
MemberwiseClone Cria uma cópia superficial do objeto atual. (Herdado do objeto.)
OnDeserialization Implementa a interface System.Runtime.Serialization.ISerializable e gera o evento de desserialização quando a desserialização é concluída.
Remover Remove o valor com a chave especificada do Dicionário (TKey, TValue).
Para sequenciar Retorna uma string que representa o objeto atual. (Herdado do objeto.)
TryGetValue Obtém o valor associado à chave especificada.

Exemplo

open System.Collections.Generic
let dict = new Dictionary<string, string>()

dict.Add("1501", "Zara Ali")
dict.Add("1502","Rishita Gupta")
dict.Add("1503","Robin Sahoo")
dict.Add("1504","Gillian Megan")

printfn "Dictionary - students: %A" dict
printfn "Total Number of Students: %d" dict.Count
printfn "The keys: %A" dict.Keys
printf"The Values: %A" dict.Values

Quando você compila e executa o programa, ele produz a seguinte saída -

Dictionary - students: seq
[[1501, Zara Ali]; [1502, Rishita Gupta]; [1503, Robin Sahoo];
[1504, Gillian Megan]]
Total Number of Students: 4
The keys: seq ["1501"; "1502"; "1503"; "1504"]
The Values: seq ["Zara Ali"; "Rishita Gupta"; "Robin Sahoo"; "Gillian Megan"]