- F# 基础教程
- F# - 主页
- F# - 概述
- F# - 环境设置
- F# - 程序结构
- F# - 基本语法
- F# - 数据类型
- F# - 变量
- F# - 运算符
- F# - 决策
- F# - 循环
- F# - 函数
- F# - 字符串
- F# - 选项
- F# - 元组
- F# - 记录
- F# - 列表
- F# - 序列
- F# - 集
- F# - 地图
- F# - 受歧视的工会
- F# - 可变数据
- F# - 数组
- F# - 可变列表
- F# - 可变字典
- F# - 基本 I/O
- F# - 泛型
- F# - 代表
- F# - 枚举
- F# - 模式匹配
- F# - 异常处理
- F# - 类
- F# - 结构
- F# - 运算符重载
- F# - 继承
- F# - 接口
- F# - 事件
- F# - 模块
- F# - 命名空间
- F# 有用资源
- F# - 快速指南
- F# - 有用的资源
- F# - 讨论
F# - 可变字典
Dictionary <'TKey, 'TValue>类是 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)。 |
数数 | 获取Dictionary(TKey, TValue)中包含的键/值对的数量。 |
物品 | 获取或设置与指定键关联的值。 |
按键 | 获取包含 Dictionary(TKey, TValue) 中键的集合。 |
价值观 | 获取包含 Dictionary(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)。 |
包含键 | 确定 Dictionary(TKey, TValue) 是否包含指定的键。 |
包含值 | 确定 Dictionary(TKey, TValue) 是否包含特定值。 |
等于(对象) | 确定指定对象是否等于当前对象。(继承自对象。) |
最终确定 | 允许对象在被垃圾收集回收之前尝试释放资源并执行其他清理操作。(继承自对象。) |
获取枚举器 | 返回一个遍历 Dictionary(TKey, TValue) 的枚举器。 |
获取哈希码 | 用作默认的哈希函数。(继承自对象。) |
获取对象数据 | 实现 System.Runtime.Serialization.ISerialized 接口并返回序列化 Dictionary(TKey, TValue) 实例所需的数据。 |
获取类型 | 获取当前实例的类型。(继承自对象。) |
会员克隆 | 创建当前对象的浅表副本。(继承自对象。) |
关于反序列化 | 实现 System.Runtime.Serialization.ISerialized 接口并在反序列化完成时引发反序列化事件。 |
消除 | 从 Dictionary(TKey, TValue) 中删除具有指定键的值。 |
转字符串 | 返回表示当前对象的字符串。(继承自对象。) |
尝试获取价值 | 获取与指定键关联的值。 |
例子
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"]