SortedList
類代表按鍵排序的鍵值對集合,可通過鍵和索引進行存取。
排序列表(SortedList
)是陣列和雜湊表的組合。它包含可以使用鍵或索引存取的專案列表。如果使用索引存取專案,則它是一個ArrayList
,如果使用鍵存取專案,則它是一個Hashtable
。 專案的集合總是按鍵值排序。
下表列出了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