F # - изменяемый словарь

В Dictionary<'TKey, 'TValue> class является изменяемым аналогом структуры данных карты F # и содержит многие из тех же функций.

Резюмируя из главы «Карта» в F #, карта - это особый вид набора, который связывает значения с ключом.

Создание изменяемого словаря

Изменяемые словари создаются с использованием newключевое слово и вызов конструктора списка. Следующий пример демонстрирует это -

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

Когда вы компилируете и выполняете программу, она дает следующий результат:

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

Словарь (TKey, TValue) Класс

Класс Dictionary (TKey, TValue) представляет собой набор ключей и значений.

В следующих таблицах представлены свойства, конструкторы и методы класса List (T):

Свойства

Свойство Описание
Сравнить Получает IEqualityComparer (T), который используется для определения равенства ключей для словаря.
Считать Получает количество пар ключ / значение, содержащихся в Словаре (TKey, TValue).
Вещь Получает или задает значение, связанное с указанным ключом.
Ключи Получает коллекцию, содержащую ключи в словаре (TKey, TValue).
Значения Получает коллекцию, содержащую значения в словаре (TKey, TValue).

Конструкторы

Конструкторы Описание
Словарь (TKey, TValue) () Инициализирует новый экземпляр Dictionary(TKey, TValue) пуст, имеет начальную емкость по умолчанию и использует компаратор проверки на равенство по умолчанию для типа ключа.
Словарь (TKey, TValue) (IDictionary (TKey, TValue)) Инициализирует новый экземпляр Dictionary(TKey, TValue) класс, содержащий элементы, скопированные из указанного IDictionary(TKey, TValue) и использует компаратор проверки на равенство по умолчанию для типа ключа.
Словарь (TKey, TValue) (IEqualityComparer (TKey)) Инициализирует новый экземпляр Dictionary(TKey, TValue) пустой класс, имеющий начальную емкость по умолчанию и использующий указанную IEqualityComparer(T).
Словарь (TKey, TValue) (Int32) Инициализирует новый экземпляр Dictionary(TKey, TValue) пустой класс, имеющий указанную начальную емкость и использующий компаратор проверки на равенство по умолчанию для типа ключа.
Словарь (TKey, TValue) (IDictionary (TKey, TValue), IEqualityComparer (TKey)) Инициализирует новый экземпляр Dictionary(TKey, TValue) класс, содержащий элементы, скопированные из указанного IDictionary(TKey, TValue) и использует указанные IEqualityComparer(T).
Словарь (TKey, TValue) (Int32, IEqualityComparer (TKey)) Инициализирует новый экземпляр Dictionary(TKey, TValue) пустой класс, имеющий указанную начальную емкость и использующий указанную IEqualityComparer(T).
Словарь (TKey, TValue) (SerializationInfo, StreamingContext) Инициализирует новый экземпляр ictionary(TKey, TValue) класс с сериализованными данными.

Методы

Метод Описание
Добавить Добавляет указанный ключ и значение в словарь.
Очистить Удаляет все ключи и значения из Словаря (TKey, TValue).
ContainsKey Определяет, содержит ли Dictionary (TKey, TValue) указанный ключ.
ContainsValue Определяет, содержит ли словарь (TKey, TValue) определенное значение.
Равно (объект) Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object.)
Завершить Позволяет объекту попытаться освободить ресурсы и выполнить другие операции очистки, прежде чем он будет освобожден сборкой мусора. (Унаследовано от Object.)
GetEnumerator Возвращает перечислитель, выполняющий итерацию по словарю (TKey, TValue).
GetHashCode Служит хеш-функцией по умолчанию. (Унаследовано от Object.)
GetObjectData Реализует интерфейс System.Runtime.Serialization.ISerializable и возвращает данные, необходимые для сериализации экземпляра Dictionary (TKey, TValue).
GetType Получает тип текущего экземпляра. (Унаследовано от Object.)
MemberwiseClone Создает неглубокую копию текущего объекта. (Унаследовано от Object.)
OnDeserialization Реализует интерфейс System.Runtime.Serialization.ISerializable и вызывает событие десериализации, когда десериализация завершена.
удалять Удаляет значение с указанным ключом из Словаря (TKey, TValue).
Нанизывать Возвращает строку, которая представляет текущий объект. (Унаследовано от Object.)
TryGetValue Получает значение, связанное с указанным ключом.

пример

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

Когда вы компилируете и выполняете программу, она дает следующий результат:

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