VB.Net SortedList



  • SortedList

    SortedList类表示键和值对的集合,这些键和值对按键排序,并且可以通过键和索引进行访问。排序列表是数组和哈希表的组合。它包含可以使用键或索引访问的项目列表。如果使用索引访问项目,则为ArrayList;如果使用键访问项目,则为Hashtable。项目集合始终按键值排序。
  • SortedList 类的属性和方法

    下表列出了SortedList类的一些常用属性-
    属性 描述
    Capacity 获取或设置SortedList的容量。
    Count 获取SortedList中包含的元素数。
    IsFixedSize 获取一个值,该值指示SortedList是否具有固定大小。
    IsReadOnly 获取一个值,该值指示SortedList是否为只读。
    Item 获取并设置与SortedList中的特定键关联的值。
    Keys 获取SortedList中的键。
    Values 获取SortedList中的值
    下表列出了SortedList类的一些常用方法--
    方法 描述
    Public Overridable Sub Add (key As Object, value As Object) 将具有指定键和值的元素添加到SortedList中。
    Public Overridable Sub Clear 从SortedList中删除所有元素。
    Public Overridable Function ContainsKey (key As Object) As Boolean 确定SortedList是否包含特定键。
    Public Overridable Function ContainsValue (value As Object) As Boolean 确定SortedList是否包含特定值。
    Public Overridable Function GetByIndex (index As Integer) As Object 获取SortedList指定索引处的值。
    Public Overridable Function GetKey (index As Integer) As Object 获取SortedList指定索引处的键。
    Public Overridable Function GetKeyList As IList 获取SortedList中的键。
    Public Overridable Function GetValueList As IList 获取SortedList中的值。
    Public Overridable Function IndexOfKey (key As Object) As Integer 返回SortedList中指定键的从零开始的索引。
    Public Overridable Function IndexOfValue (value As Object ) As Integer 返回SortedList中第一次出现的指定值的从零开始的索引。
    Public Overridable Sub Remove (key As Object) 从SortedList中移除具有指定键的元素。
    Public Overridable Sub RemoveAt (index As Integer) 删除SortedList指定索引处的元素。
    Public Overridable Sub TrimToSize 将容量设置为SortedList中元素的实际数量。
    示例:
    
    Imports System.Collections
    Module collections
       Sub Main()
          Dim sl As SortedList = New SortedList()
          sl.Add("001", "Zara Alex")
          sl.Add("002", "Abida Rehman")
          sl.Add("003", "Joe Holzner")
          sl.Add("004", "Mausam Benazir Nur")
          sl.Add("005", "M. Amlan")
          sl.Add("006", "M. Arif")
          sl.Add("007", "Ritesh Saikia")
          
          If (sl.ContainsValue("Nuha Alex")) Then
             Console.WriteLine("This student name is already in the list")
          Else
             sl.Add("008", "Nuha Alex")
          End If
           ' Get a collection of the keys. 
          Dim key As ICollection = sl.Keys
          Dim k As String
          
          For Each k In key
             Console.WriteLine(" {0} : {1}", k, sl(k))
          Next k
          Console.ReadKey()
       End Sub
    End Module
    
    
    尝试一下
    编译并执行上述代码后,将产生以下结果-
    
    001 : Zara Alex
    002 : Abida Rehman
    003 : Joe Holzner
    004 : Mausam Benazir Nur
    005 : M. Amlan
    006 : M. Arif
    007 : Ritesh Saikia
    008 : Nuha Alex