F#可变字典
Dictionary<'TKey, 'TValue>类是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]]
Dictionary(TKey,TValue) Class
Dictionary(TKey,TValue) Class表示键和值的集合。
下表提供的属性,构造函数和列表(T)类的方法
属性
属性 | 描述 |
---|---|
Comparer | 获取用于确定字典键平等的IEqualityComparer(T)。 |
Count | 获取包含在词典(TKEY的,TValue)键/值对的数量。 |
Item | 获取或设置与指定的键关联的值。 |
Keys | 获取包含在Dictionary(TKEY的,TValue)键的集合。 |
Values | 获取包含在Dictionary(TKEY的,TValue)值的集合。 |
构造函数
构造函数 | 描述 |
---|---|
Dictionary(TKey, TValue)() | 初始化一个空的,具有默认初始容量的Dictionary(TKey,TValue)类的新实例,并使用默认的等于比较器作为键类型。 |
Dictionary(TKey, TValue)(IDictionary(TKey, TValue)) | 初始化包含从指定词典(TKey,TValue)复制的元素的词典(TKey,TValue)类的新实例,并使用默认的相等比较器作为键类型。 |
Dictionary(TKey, TValue)(IEqualityComparer(TKey)) | 初始化一个空的,具有默认初始容量并使用指定的IEqualityComparer(T)的Dictionary(TKey,TValue)类的新实例。 |
Dictionary(TKey, TValue)(Int32) | 初始化一个空的,具有指定的初始容量的Dictionary(TKey,TValue)类的新实例,并使用默认的等价比较器作为键类型。 |
Dictionary(TKey, TValue)(IDictionary(TKey, TValue), IEqualityComparer(TKey)) | 初始化包含从指定IDictionary(TKey,TValue)复制的元素并使用指定的IEqualityComparer(T)的Dictionary(TKey,TValue)类的新实例。 |
Dictionary(TKey, TValue)(Int32, IEqualityComparer(TKey)) | 初始化一个空的,具有指定的初始容量并使用指定的IEqualityComparer(T)的Dictionary(TKey,TValue)类的新实例。 |
Dictionary(TKey, TValue)(SerializationInfo, StreamingContext) | 使用序列化数据初始化dictionary(TKey,TValue)类的新实例。 |
模式
模式 | 描述 |
---|---|
Add | 添加指定的键和值到字典中。 |
Clear | 移除字典(TKEY的,TValue)中的所有键和值。 |
ContainsKey | 确定词典(TKEY的,TValue)是否包含指定键。 |
ContainsValue | 确定词典(TKEY的,TValue)是否包含特定值。 |
Equals(Object) | 确定指定的对象是否等于当前对象。 (从Object继承。) |
Finalize | 允许一个对象尝试释放资源并之前它是由垃圾回收执行其他清理操作。 (从Object继承。) |
GetEnumerator | 返回的枚举字典(TKEY的,TValue)迭代。 |
GetHashCode | 作为默认哈希函数。 (从Object继承。) |
GetObjectData | 实现了System.Runtime.Serialization.ISerializable接口,并返回序列化词典(TKEY的,TValue)实例所需的数据。 |
GetType | 获取当前实例的类型。 (从Object继承。) |
MemberwiseClone | 创建当前Object的浅表副本。 (从Object继承。) |
OnDeserialization | 实现了System.Runtime.Serialization.ISerializable接口,并引发反序列化事件的反序列化完成时。 |
Remove | 删除从词典(TKEY的,TValue)指定键的值。 |
ToString | 返回表示当前对象的字符串。 (从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"]