نوعی متغیر است که به اعضای آن میتوان کلید اختصاص داد و انواع مختلفی دارد:
'SortedList
Dim sl As New SortedList()
sl.Add("1", "First")
sl.Add("3", "Second")
sl.Add("2", "Third")
For Each de As DictionaryEntry In sl
ListBox1.Items.Add(de.Value)
Next
Key کلید و Value مقدار یه خانه است.
خروجی را مرتب کرده و به صورت زیر به ListBox1 اضافه میکند
( مرتب سازی روی حروف الفبا نیز میباشد )
First
Third
Second
نحوه دستیابی به خانه های حافظه از نوع SortedList
MsgBox(sl("3"))
MsgBox(sl.GetByIndex(0))
'Hashtable
Dim HT As New Hashtable()
HT.Add("nima", "09118970987")
HT.Add("pouyan", "091234538")
HT.Add("shadi", "0913234566")
HT.Add("nansi", "0919789400")
For Each h As DictionaryEntry In HT
ListBox1.Items.Add(h.Key)
ListBox2.Items.Add(h.Value)
Next
هش تیبل فقط میتواند کلید منحصر به فرد داشته باشد
اگر بخواهیم که کلید، منحصر به فرد نباشد از نیم ولیو کالکشن استفاده میکنیم.
'NameValueCollection
Dim sl As New NameValueCollection()
sl.Add("Stack", "Represents a LIFO collection of objects.")
sl.Add("Stack", "A pile of pancakes.")
sl.Add("Queue", "Represents a FIFO collection of objects.")
sl.Add("Queue", "In England, a line.")
sl.Add("SortedList", "Represents a collection of key/value pairs.")
For Each s As String In sl.GetValues(0)
ListBox1.Items.Add(s)
Next
For Each s As String In sl.GetValues("Queue")
ListBox2.Items.Add(s)
Next
همانطور که میبینید در NameValueCollection میتوانیم چندین کلید یکی داشته باشیم