- 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# - 可變字典
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"]
廣告