SortedList 類
表示鍵/值對的集合,這些鍵和值按鍵排序並可按照鍵和索引訪問。SortedList最合適對一列健/值對 進行排序,在排序時,是對鍵進行排序,SortedList 是 Hashtable 和 Array 的混合。當使用 Item 索引器屬性按照元素的鍵訪問元素時,其行為類似於 Hashtable。當使用 GetByIndex 或 SetByIndex 按照元素的索引訪問元素時,其行為類似於 Array。
SortedList 在內部維護兩個數組以將數組存儲到列表中;即,一個數組用於鍵,另一個數組用於相關聯的值。每個元素都是一個可作為 DictionaryEntry 對象進行訪問的鍵/值對。鍵不能為空引用(Visual Basic 中為 Nothing),但值可以。
SortedList 的容量是列表可擁有的元素數。隨著向 SortedList 中添加元素,容量通過重新分配按需自動增加。可通過調用 TrimToSize 或通過顯式設置 Capacity 屬性減少容量。
SortedList 的元素將按照特定的 IComparer 實現(在創建 SortedList 時指定)或按照鍵本身提供的 IComparable 實現並依據鍵來進行排序。不論在哪種情況下,SortedList 都不允許重復鍵。
索引順序基於排序順序。當添加元素時,元素將按正確的排序順序插入 SortedList,同時索引會相應地進行調整。若移除了元素,索引也會相應地進行調整。因此,當在 SortedList 中添加或移除元素時,特定鍵/值對的索引可能會更改。
由於要進行排序,所以在 SortedList 上操作比在 Hashtable
上操作要慢。但是,SortedList 允許通過相關聯鍵或通過索引對值進行訪問,可提供更大的靈活性。
一。添加刪除
1。public virtual void Add(object key,object value);
此集合中的索引從零開始。
將帶有指定鍵和值的元素添加到 SortedList。
通過設置 SortedList 中不存在的鍵的值,Item
屬性也可用於添加新元素。例如:myCollection["myNonexistentKey"] = myValue。但是,如
果指定的鍵已經存在於 SortedList 中,則設置 Item 屬性將改寫舊值。相比之下,Add 方法
不修改現有元素。
SortedList sList = new SortedList();
sList.Add(1,"d");
sList.Add(2,"c");
sList.Add(3,"b");
sList.Add(4,"a");
//結果為d c b a,所以可知是按鍵排序,而非值排序
DropDownList3.DataSource = sList;
DropDownList3.DataTextFIEld = "Key";
DropDownList3.DataValueFIEld = "Value";
DropDownList3.DataBind();
2。public virtual void Remove(object key);
從 SortedList 中移除帶有指定鍵的元素
如果 SortedList 不包含帶有指定鍵的元素,則 SortedList 保持不變。不引發異常
SortedList sList = new SortedList();
sList.Add(1,"d");
sList.Add(2,"c");
sList.Add(3,"b");
sList.Add(4,"a");