F # - Diccionario mutable

los Dictionary<'TKey, 'TValue> class es el análogo mutable de la estructura de datos del mapa F # y contiene muchas de las mismas funciones.

Recapitulando del capítulo Mapa en F #, un mapa es un tipo especial de conjunto que asocia los valores con la clave.

Creación de un diccionario mutable

Los diccionarios mutables se crean utilizando newpalabra clave y llamando al constructor de la lista. El siguiente ejemplo demuestra esto:

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

Cuando compila y ejecuta el programa, produce el siguiente resultado:

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

La clase Dictionary (TKey, TValue)

La clase Dictionary (TKey, TValue) representa una colección de claves y valores.

Las siguientes tablas proporcionan las propiedades, constructores y métodos de la clase List (T):

Propiedades

Propiedad Descripción
Comparador Obtiene el IEqualityComparer (T) que se usa para determinar la igualdad de claves para el diccionario.
Contar Obtiene el número de pares clave / valor contenidos en el Diccionario (TKey, TValue).
Articulo Obtiene o establece el valor asociado con la clave especificada.
Llaves Obtiene una colección que contiene las claves en el diccionario (TKey, TValue).
Valores Obtiene una colección que contiene los valores del Diccionario (TKey, TValue).

Constructores

Constructores Descripción
Diccionario (TKey, TValue) () Inicializa una nueva instancia del Dictionary(TKey, TValue) clase que está vacía, tiene la capacidad inicial predeterminada y usa el comparador de igualdad predeterminado para el tipo de clave.
Diccionario (TKey, TValue) (IDictionary (TKey, TValue)) Inicializa una nueva instancia del Dictionary(TKey, TValue) clase que contiene elementos copiados del especificado IDictionary(TKey, TValue) y utiliza el comparador de igualdad predeterminado para el tipo de clave.
Diccionario (TKey, TValue) (IEqualityComparer (TKey)) Inicializa una nueva instancia del Dictionary(TKey, TValue) clase que está vacía, tiene la capacidad inicial predeterminada y utiliza la especificada IEqualityComparer(T).
Diccionario (TKey, TValue) (Int32) Inicializa una nueva instancia del Dictionary(TKey, TValue) clase que está vacía, tiene la capacidad inicial especificada y usa el comparador de igualdad predeterminado para el tipo de clave.
Diccionario (TKey, TValue) (IDictionary (TKey, TValue), IEqualityComparer (TKey)) Inicializa una nueva instancia del Dictionary(TKey, TValue) clase que contiene elementos copiados del especificado IDictionary(TKey, TValue) y usa el especificado IEqualityComparer(T).
Diccionario (TKey, TValue) (Int32, IEqualityComparer (TKey)) Inicializa una nueva instancia del Dictionary(TKey, TValue) clase que está vacía, tiene la capacidad inicial especificada y utiliza la especificada IEqualityComparer(T).
Diccionario (TKey, TValue) (SerializationInfo, StreamingContext) Inicializa una nueva instancia del ictionary(TKey, TValue) clase con datos serializados.

Métodos

Método Descripción
Añadir Agrega la clave y el valor especificados al diccionario.
Claro Elimina todas las claves y valores del Diccionario (TKey, TValue).
Contiene clave Determina si el diccionario (TKey, TValue) contiene la clave especificada.
Contiene valor Determina si el diccionario (TKey, TValue) contiene un valor específico.
Es igual a (objeto) Determina si el objeto especificado es igual al objeto actual. (Heredado de Object).
Finalizar Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de que sea reclamado por la recolección de basura. (Heredado de Object).
GetEnumerator Devuelve un enumerador que recorre en iteración el Diccionario (TKey, TValue).
GetHashCode Sirve como la función hash predeterminada. (Heredado de Object).
GetObjectData Implementa la interfaz System.Runtime.Serialization.ISerializable y devuelve los datos necesarios para serializar la instancia de Dictionary (TKey, TValue).
GetType Obtiene el tipo de la instancia actual. (Heredado de Object).
MemberwiseClone Crea una copia superficial del objeto actual. (Heredado de Object).
En Deserialización Implementa la interfaz System.Runtime.Serialization.ISerializable y genera el evento de deserialización cuando se completa la deserialización.
Eliminar Elimina el valor con la clave especificada del Diccionario (TKey, TValue).
Encadenar Devuelve una cadena que representa el objeto actual. (Heredado de Object).
TryGetValue Obtiene el valor asociado con la clave especificada.

Ejemplo

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

Cuando compila y ejecuta el programa, produce el siguiente resultado:

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"]