參考MSDN:
SortedDictionary泛型類表示按鍵排序的鍵/值對的集合。
類型參數
TKey字典中的鍵類型。
TValue字典中值的類型。
SortedDictionary泛型類是壹個檢索操作復雜度為O(log n)的二叉查找樹,其中n是字典中元素的個數。在這方面,它類似於SortedList泛型類。這兩個類有相似的對象模型,並且都有O(log n)的檢索復雜度。這兩個類的區別在於內存的使用以及插入和移除元素的速度:
SortedList使用的內存比SortedDictionary少。
foreach(key value pair & lt;int,string & gt我的字典中的kvp...}
foreach語句是枚舉數的包裝,僅允許枚舉數讀取集合,但不允許寫入集合。
用法示例:
使用系統;
使用系統。集合。泛型;
公共類示例
{
公共靜態void Main()
{
//用字符串鍵創建新的字符串字典。
//
字典& ltstring,string & gtopenWith =
新詞典& ltstring,string & gt();
//在字典中添加壹些元素。沒有
//重復的鍵,但某些值是重復的。
打開方式。Add("txt "," notepad . exe ");
打開方式。Add("bmp "," paint . exe ");
打開方式。Add("dib "," paint . exe ");
打開方式。Add("rtf "," wordpad . exe ");
//如果新鍵為,Add方法將引發異常
//已經在字典中。
嘗試
{
打開方式。Add("txt "," winword . exe ");
}
catch(參數異常)
{
控制臺。with 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 (openWith。TryGetValue("tif ",out value))
{
控制臺。WriteLine("For key = \"tif\ ",value = {0}。",值);
}
其他
{
控制臺。找不到WriteLine("Key = \"tif\ ");
}
// ContainsKey可用於在插入前測試密鑰
//他們。
如果(!打開方式。ContainsKey("ht "))
{
打開方式。Add("ht "," hypertrm . exe ");
控制臺。WriteLine(" key = \ " ht \ ":{ 0 } "的附加值,
open with[" ht "]);
}
//當使用foreach枚舉字典元素時,
//元素作為KeyValuePair對象進行檢索。
控制臺。WriteLine();
foreach(key value pair & lt;string,string & gtkvp in openWith)
{
控制臺。WriteLine("Key = {0},Value = {1} ",
kvp。鍵,kvp。值);
}
//若要單獨獲取值,請使用values屬性。
字典& ltstring,string & gt。值集合值集合=
打開方式。價值觀;
ValueCollection的元素是強類型的
//具有為字典值指定的類型。
控制臺。WriteLine();
foreach(value coll中的字符串)
{
控制臺。WriteLine("Value = {0} ",s);
}
//若要單獨獲取密鑰,請使用keys屬性。
字典& ltstring,string & gt。KeyCollection keyColl =
打開方式。鑰匙;
KeyCollection的元素是強類型的
//具有為字典鍵指定的類型。
控制臺。WriteLine();
foreach(key coll中的字符串s)
{
控制臺。WriteLine("Key = {0} ",s);
}
//使用Remove方法移除鍵/值對。
控制臺。WriteLine(" \ n remove(\ " doc \ ")");
打開方式。移除(" doc ");
如果(!打開方式。包含鍵(" doc "))
{
控制臺。找不到WriteLine("關鍵字\"doc\ ");
}
}
}
/*此代碼示例產生以下輸出:
具有Key = "txt "的元素已經存在。
對於key = "rtf ",值= wordpad.exe。
對於key = "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
Key = bmp
Key = dib
Key = rtf
Key = doc
Key = ht
移除(“doc”)
找不到關鍵字“doc”。
*/