F??勺冏值?/h1>

2018-12-16 09:36 更新

Dictionary<'TKey, 'TValue>類是F#映射數(shù)據(jù)結(jié)構(gòu)的可變模擬,并且包含許多相同的功能。

一個可變字典創(chuàng)建

可變詞典都使用new關(guān)鍵字并調(diào)用列表的構(gòu)造函數(shù)創(chuàng)建。下面的例子說明了這一點(diǎn)

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

當(dāng)編譯和執(zhí)行程序時,它會產(chǎn)生以下輸出

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

Dictionary(TKey,TValue) Class

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

下表提供的屬性,構(gòu)造函數(shù)和列表(T)類的方法 

屬性

屬性描述
Comparer獲取用于確定字典鍵平等的IEqualityComparer(T)。
Count獲取包含在詞典(TKEY的,TValue)鍵/值對的數(shù)量。
Item獲取或設(shè)置與指定的鍵關(guān)聯(lián)的值。
Keys獲取包含在Dictionary(TKEY的,TValue)鍵的集合。
Values獲取包含在Dictionary(TKEY的,TValue)值的集合。

構(gòu)造函數(shù)

構(gòu)造函數(shù)描述
Dictionary(TKey, TValue)()初始化一個空的,具有默認(rèn)初始容量的Dictionary(TKey,TValue)類的新實(shí)例,并使用默認(rèn)的等于比較器作為鍵類型。
Dictionary(TKey, TValue)(IDictionary(TKey, TValue))初始化包含從指定詞典(TKey,TValue)復(fù)制的元素的詞典(TKey,TValue)類的新實(shí)例,并使用默認(rèn)的相等比較器作為鍵類型。
Dictionary(TKey, TValue)(IEqualityComparer(TKey))初始化一個空的,具有默認(rèn)初始容量并使用指定的IEqualityComparer(T)的Dictionary(TKey,TValue)類的新實(shí)例。
Dictionary(TKey, TValue)(Int32)初始化一個空的,具有指定的初始容量的Dictionary(TKey,TValue)類的新實(shí)例,并使用默認(rèn)的等價比較器作為鍵類型。
Dictionary(TKey, TValue)(IDictionary(TKey, TValue), IEqualityComparer(TKey))初始化包含從指定IDictionary(TKey,TValue)復(fù)制的元素并使用指定的IEqualityComparer(T)的Dictionary(TKey,TValue)類的新實(shí)例。
Dictionary(TKey, TValue)(Int32, IEqualityComparer(TKey))初始化一個空的,具有指定的初始容量并使用指定的IEqualityComparer(T)的Dictionary(TKey,TValue)類的新實(shí)例。
Dictionary(TKey, TValue)(SerializationInfo, StreamingContext)使用序列化數(shù)據(jù)初始化dictionary(TKey,TValue)類的新實(shí)例。

模式

模式描述
Add添加指定的鍵和值到字典中。
Clear移除字典(TKEY的,TValue)中的所有鍵和值。
ContainsKey確定詞典(TKEY的,TValue)是否包含指定鍵。
ContainsValue確定詞典(TKEY的,TValue)是否包含特定值。
Equals(Object)確定指定的對象是否等于當(dāng)前對象。 (從Object繼承。)
Finalize允許一個對象嘗試釋放資源并之前它是由垃圾回收執(zhí)行其他清理操作。 (從Object繼承。)
GetEnumerator返回的枚舉字典(TKEY的,TValue)迭代。
GetHashCode作為默認(rèn)哈希函數(shù)。 (從Object繼承。)
GetObjectData實(shí)現(xiàn)了System.Runtime.Serialization.ISerializable接口,并返回序列化詞典(TKEY的,TValue)實(shí)例所需的數(shù)據(jù)。
GetType獲取當(dāng)前實(shí)例的類型。 (從Object繼承。)
MemberwiseClone創(chuàng)建當(dāng)前Object的淺表副本。 (從Object繼承。)
OnDeserialization實(shí)現(xiàn)了System.Runtime.Serialization.ISerializable接口,并引發(fā)反序列化事件的反序列??化完成時。
Remove刪除從詞典(TKEY的,TValue)指定鍵的值。
ToString返回表示當(dāng)前對象的字符串。 (從Object繼承。)
TryGetValue獲取與指定鍵關(guān)聯(lián)的值。

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

當(dāng)你編譯和執(zhí)行程序,它產(chǎn)生以下輸出 

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"]
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號