VB.Net SortedList類

2019-10-16 23:01:26

SortedList類代表按鍵排序的鍵值對集合,可通過鍵和索引進行存取。

排序列表(SortedList)是陣列和雜湊表的組合。它包含可以使用鍵或索引存取的專案列表。如果使用索引存取專案,則它是一個ArrayList,如果使用鍵存取專案,則它是一個Hashtable。 專案的集合總是按鍵值排序。

SortedList類的屬性和方法

下表列出了SortedList類的一些常用屬性:

編號 屬性 描述
1 Capacity 獲取或設定Hashtable可以包含的元素的數量。
2 Count 獲取SortedList中包含的元素的數量。
3 IsFixedSize 獲取一個值,該值指示Hashtable是否具有固定的大小。
4 IsReadOnly 獲取一個值,該值指示Hashtable是否是唯讀的。
5 Item 獲取或設定指定鍵關聯的元素。
6 Keys 獲取包含Hashtable中的鍵的ICollection
7 Values 獲取包含Hashtable中的值的ICollection

下表列出了SortedList類的一些常用方法:

編號 方法 描述
1 Public Overridable Sub Add (key As Object, value As Object)
2 Public Overridable Sub Clear SortedList中刪除所有元素。
3 Public Overridable Function ContainsKey (key As Object) As Boolean 確定SortedList是否包含特定的鍵。
4 Public Overridable Function ContainsValue (value As Object) As Boolean 確定SortedList是否包含特定值。
5 Public Overridable Function GetByIndex (index As Integer) As Object 獲取SortedList的指定索引處的值。
6 Public Overridable Function GetKey (index As Integer) As Object 獲取SortedList的指定索引處的鍵。
7 Public Overridable Function GetKeyList As IList 獲取SortedList中的鍵。
8 Public Overridable Function GetValueList As IList 獲取SortedList中的所有值。
9 Public Overridable Function IndexOfKey (key As Object) As Integer 返回SortedList中指定鍵的從零開始的索引。
10 Public Overridable Function IndexOfValue (value As Object ) As Integer 返回SortedList中第一次出現指定值的從零開始的索引。
11 Public Overridable Sub Remove (key As Object) SortedList中刪除具有指定鍵的元素。
12 Public Overridable Sub RemoveAt (index As Integer) 刪除SortedList的指定索引處的元素。
13 Public Overridable Sub TrimToSize 將容量設定為SortedList中元素的實際數量。

範例

以下範例演示了這個概念:

Imports System.Collections

Module modhashtable
   Sub Main()
      Dim ht As Hashtable = New Hashtable()
      Dim k As String
      ht.Add("001", "Haikou Lee")
      ht.Add("002", "Abida Rehman")
      ht.Add("003", "Joe Holzner")
      ht.Add("004", "Mausam Benazir Nur")
      ht.Add("005", "M. Amlan")
      ht.Add("006", "M. Arif")
      ht.Add("007", "Ritesh Wong")
      If (ht.ContainsValue("Nuha Ali")) Then
          Console.WriteLine("This student name is already in the list")
      Else
          ht.Add("008", "Nuha Lee")
      End If
      ' Get a collection of the keys. 
      Dim key As ICollection = ht.Keys
      For Each k In key
          Console.WriteLine(" {0} : {1}", k, ht(k))
      Next k
      Console.ReadKey()
   End Sub
End Module

執行上面範例程式碼,得到以下結果 -

F:\worksp\vb.net\collection>vbc MySortedList.vb
F:\worksp\vb.net\collection>MySortedList.exe
 001 : Hakou lee
 002 : Abida Rehman
 003 : Joe Holzner
 004 : Mausam Benazir Nur
 005 : M. Amlan
 006 : M. Arif
 007 : Ritesh Wong
 008 : Nuha Ali