C# SortedList類介紹

來源:互聯網
上載者:User

SortedList 類 [C#]
  命名空間: System.Collections
  表示鍵/值對的集合,這些鍵和值按鍵排序並可按照鍵和索引訪問。
  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 允許通過相關聯鍵或通過索引對值進行訪問,可提供更大的靈活性。
此集合中的索引從零開始。
   C# 語言中的 foreach 語句(在 Visual Basic 中為 for each)需要集合中每個元素的類型。由於 SortedList 的每個元素都是一個鍵/值對,因此元素類型既不是鍵的類型,也不是值的類型。而是 DictionaryEntry 類型。

如:

foreach (DictionaryEntry de in list)
            {
                Console.WriteLine("遍曆");
                Console.WriteLine("/t鍵:{0}/t值:{1}", de.Key, de.Value);
            }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.