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

Dictionary(TKey,TValue) 類

Dictionary(TKey, TValue) 類表示鍵和值的集合。

下表提供了 List(T) 類的屬性、建構函式和方法:

屬性

屬性 描述
Comparer 獲取用於確定字典鍵相等的 IEqualityComparer(T)。
Count 獲取 Dictionary(TKey, TValue) 中包含的鍵值對的數量。
Item 獲取或設定與指定鍵關聯的值。
Keys 獲取包含 Dictionary(TKey, TValue) 中鍵的集合。
Values 獲取包含 Dictionary(TKey, TValue) 中值的集合。

建構函式

建構函式 描述
Dictionary(TKey, TValue)() 初始化一個新的 Dictionary(TKey, TValue) 類例項,該例項為空,具有預設初始容量,並使用鍵型別的預設相等比較器。
Dictionary(TKey, TValue)(IDictionary(TKey, TValue)) 初始化一個新的 Dictionary(TKey, TValue) 類例項,該例項包含從指定的 IDictionary(TKey, TValue) 複製的元素,並使用鍵型別的預設相等比較器。
Dictionary(TKey, TValue)(IEqualityComparer(TKey)) 初始化一個新的 Dictionary(TKey, TValue) 類例項,該例項為空,具有預設初始容量,並使用指定的 IEqualityComparer(T)。
Dictionary(TKey, TValue)(Int32) 初始化一個新的 Dictionary(TKey, TValue) 類例項,該例項為空,具有指定的初始容量,並使用鍵型別的預設相等比較器。
Dictionary(TKey, TValue)(IDictionary(TKey, TValue), IEqualityComparer(TKey)) 初始化一個新的 Dictionary(TKey, TValue) 類例項,該例項包含從指定的 IDictionary(TKey, TValue) 複製的元素,並使用指定的 IEqualityComparer(T)。
Dictionary(TKey, TValue)(Int32, IEqualityComparer(TKey)) 初始化一個新的 Dictionary(TKey, TValue) 類例項,該例項為空,具有指定的初始容量,並使用指定的 IEqualityComparer(T)。
Dictionary(TKey, TValue)(SerializationInfo, StreamingContext) 使用序列化資料初始化一個新的 ictionary(TKey, TValue) 類例項。

方法

方法 描述
Add 將指定的鍵和值新增到字典中。
Clear 從 Dictionary(TKey, TValue) 中刪除所有鍵和值。
ContainsKey 確定 Dictionary(TKey, TValue) 是否包含指定的鍵。
ContainsValue 確定 Dictionary(TKey, TValue) 是否包含特定值。
Equals(Object) 確定指定的物件是否等於當前物件。(繼承自 Object。)
Finalize 允許物件在被垃圾回收之前嘗試釋放資源並執行其他清理操作。(繼承自 Object。)
GetEnumerator 返回一個列舉器,該列舉器遍歷 Dictionary(TKey, TValue)。
GetHashCode 用作預設雜湊函式。(繼承自 Object。)
GetObjectData 實現 System.Runtime.Serialization.ISerializable 介面並返回序列化 Dictionary(TKey, TValue) 例項所需的資料。
GetType 獲取當前例項的 Type。(繼承自 Object。)
MemberwiseClone 建立當前 Object 的淺表副本。(繼承自 Object。)
OnDeserialization 實現 System.Runtime.Serialization.ISerializable 介面並在反序列化完成後引發反序列化事件。
Remove 從 Dictionary(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"]
廣告

© . All rights reserved.