當前位置:成語大全網 - 書法字典 - 字典中的鍵值排序

字典中的鍵值排序

字典通常不容易分類。您可以使用SortDictionary類進行排序...~ ~ ~ ~ ~ ~ ~

參考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”。

*/