MCTS Programming

www.SarafMoghadam.Com

MCTS Programming

www.SarafMoghadam.Com

متغیرهای Dictionaries

نوعی متغیر است که به اعضای آن میتوان کلید اختصاص داد و انواع مختلفی دارد:


  • Hashtable ( قابل بازیابی از طریق نام و ایندکس )
  • SortedList ( به صورت اتوماتیک بر اساس کلیدها مرتب میشود )
  • StringDictionary (نوعی هش تیبل که قدرت زیادی برای رشته های حرفی دارد)
  • ListDictionary ( بهینه سازی شده برای کمتر از 10 آیتم )
  • HybridDictionary (از لیست دیکشنری استفاده می کند و در صورت افزایش هش تیبل میشود)
  • NameValueCollection ( بازیابی توسط اسم و ایندکس )

'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 میتوانیم چندین کلید یکی داشته باشیم

نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد