服務(wù)熱線
153 8323 9821
TKey
字典中的鍵的類型。
TValue
字典中的值的類型。
SortedDictionary 泛型類是檢索運(yùn)算復(fù)雜度為 O(log n) 的二叉搜索樹,其中 n 是字典中的元素數(shù)。就這一點(diǎn)而言,它與 SortedList 泛型類相似。這兩個類具有相似的對象模型,并且都具有 O(log n) 的檢索運(yùn)算復(fù)雜度。這兩個類的區(qū)別在于內(nèi)存的使用以及插入和移除元素的速度:
SortedList 使用的內(nèi)存比 SortedDictionary 少。
SortedDictionary 可對未排序的數(shù)據(jù)執(zhí)行更快的插入和移除操作:它的時間復(fù)雜度為 O(log n),而 SortedList 為 O(n)。
如果使用排序數(shù)據(jù)一次性填充列表,則 SortedList 比 SortedDictionary 快。
每個鍵/值對都可以作為 KeyValuePair 結(jié)構(gòu)進(jìn)行檢索,或作為 DictionaryEntry 通過非泛型 IDictionary 接口進(jìn)行檢索。
只要鍵用作 SortedDictionary 中的鍵,它們就必須是不可變的。SortedDictionary 中的每個鍵必須是唯一的。鍵不能為 空引用(在 Visual Basic 中為 Nothing),但是如果值類型 TValue 為引用類型,該值則可以為空。
SortedDictionary 需要比較器實(shí)現(xiàn)來執(zhí)行鍵比較??梢允褂靡粋€接受 comparer 參數(shù)的構(gòu)造函數(shù)來指定 IComparer 泛型接口的實(shí)現(xiàn);如果不指定實(shí)現(xiàn),則使用默認(rèn)的泛型比較器 Comparer.Default。如果類型 TKey 實(shí)現(xiàn) System.IComparable 泛型接口,則默認(rèn)比較器使用該實(shí)現(xiàn)。
C# 語言的 foreach 語句,需要集合中每個元素的類型。由于 SortedDictionary 的每個元素都是一個鍵/值對,因此元素類型既不是鍵的類型,也不是值的類型。而是 KeyValuePair 類型。下面的代碼演示 C# 語法
using System;
using System.Collections.Generic;
public class Example
{