參考MSDN:
SortedDictionary泛型類表示按鍵排序的鍵/值對的集合。
類型參數
TKey字典中的鍵類型。
TValue字典中值的類型。
SortedDictionary泛型類是壹個檢索操作復雜度為O(log n)的二叉查找樹,其中n是字典中元素的數量。在這方面,它類似於SortedList泛型類。這兩個類具有相似的對象模型,並且都具有O(log n)檢索復雜度。這兩個類的區別在於內存的使用以及插入和刪除元素的速度:
SortedList使用的內存比SortedDictionary少。
foreach(key value pair & ltint,string & gt我的字典中的kvp ){...}
foreach語句是枚舉數的包裝,僅允許枚舉數讀取集合,但不允許寫入集合。
用法示例:
使用系統;
使用系統。集合。通用;
公共類示例
{
公共靜態void Main()
{
//用字符串鍵創建新的字符串字典。
//
詞典& ltstring,string & gt打開方式=
新詞典& ltstring,string & gt();
//向字典中添加壹些元素。沒有
//重復的鍵,但某些值是重復的。
openWith。add(“txt“,“notepad . exe“);
openWith。add(“BMP“,“paint . exe“);
openWith。add(“DIB“,“paint . exe“);
openWith。add(“rtf“,“wordpad . exe“);
//如果新鍵為,Add方法將引發異常
//已經在字典中。
嘗試
{
openWith。add(“txt“,“winword . exe“);
}
catch(argument exception)
{
控制臺。WriteLine(“Key =“txt“的元素已經存在。“);
}
Item屬性是索引器的另壹個名稱,因此
//訪問元素時可以省略其名稱。
控制臺。WriteLine(“For key =“rtf“,value = {0}。“,
open with【“rtf“】);
//索引器可用於更改關聯的值
//帶鑰匙。
open with【“rtf“】=“winword . exe“;
控制臺。WriteLine(“For key =“rtf“,value = {0}。“,
open with【“rtf“】);
//如果鍵不存在,則設置該鍵的索引器
//添加新的鍵/值對。
open with【“doc“】=“winword . exe“;
//如果請求的鍵為,索引器將引發異常
//字典裏沒有。
嘗試
{
控制臺。WriteLine(“For key =“TIF“,value = {0})。,
open with【“TIF“】);
}
catch(KeyNotFoundException)
{
控制臺。找不到WriteLine(“Key =“TIF“));
}
//當程序經常不得不嘗試結果並不成功的鍵時
//在字典中,TryGetValue可以是更高效的
//檢索值的方式。
字符串值=““;
if(open with。try getvalue(“TIF“,out value))
{
控制臺。WriteLine(“For key =“TIF“,value = {0})。,值);
}
其他
{
控制臺。找不到WriteLine(“Key =“TIF“));
}
// ContainsKey可用於在插入前測試密鑰
//他們。
如果(!openWith。contains key(“ht“)
{
openWith。add(“ht”、“hypertrm . exe“);
控制臺。WriteLine(“為key =“ht“:{ 0 }“增加的值,
open with【“ht“】);
}
//當使用foreach枚舉字典元素時,
//元素作為KeyValuePair對象進行檢索。
控制臺。WriteLine();
foreach(key value pair & ltstring,string & gtkvp in openWith)
{
控制臺。WriteLine(“Key = { 0 },Value = {1}“,
kvp。關鍵,kvp。值);
}
//若要單獨獲取值,請使用values屬性。
詞典& ltstring,string & gt。值集合值集合=
openWith。價值觀;
ValueCollection的元素是強類型的
//具有為字典值指定的類型。
控制臺。WriteLine();
foreach(value coll中的字符串s)
{
控制臺。WriteLine(“Value = { 0 }“,s);
}
//若要單獨獲取密鑰,請使用keys屬性。
詞典& ltstring,string & gt。KeyCollection keyColl =
openWith。鑰匙;
KeyCollection的元素是強類型的
//具有為字典鍵指定的類型。
控制臺。WriteLine();
foreach(key coll中的字符串s)
{
控制臺。WriteLine(“Key = { 0 }“,s);
}
//使用Remove方法移除鍵/值對。
控制臺。WriteLine(“\ n remove(\“doc \“)“);
openWith。remove(“doc“);
如果(!openWith。contains key(“doc“)
{
控制臺。WriteLine(“找不到關鍵字“doc”));
}
}
}
/*此代碼示例產生以下輸出:
具有Key =“txt“的元素已經存在。
對於鍵=“rtf”,值= wordpad.exe。
對於鍵=“rtf”,值= winword.exe。
找不到key =“TIF“。
找不到key =“TIF“。
key =“ht”:hypertrm.exe的附加值
Key = txt,Value = notepad.exe
鍵= bmp,值= paint.exe
鍵= dib,值= paint.exe
鍵= rtf,值= winword.exe
關鍵字=文檔,值= winword.exe
鍵= ht,值= hypertrm.exe
價值= notepad.exe
價值= paint.exe
價值= paint.exe
價值= winword.exe
價值= winword.exe
價值= hypertrm.exe
Key = txt
關鍵= bmp
Key = dib
Key = rtf
Key = doc
Key = ht
移除(“doc”)
找不到關鍵字“doc”。
*/