نوعی متغیر است که به اعضای آن میتوان کلید اختصاص داد و انواع مختلفی دارد:
'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 میتوانیم چندین کلید یکی داشته باشیم
لینک کمکی به MSDN برای BitArray
آرایه بیتی ، آرایه ای از Boolean ها است
نحوه تعریف آرایه بیتی به روشهای مختلف عبارت است از:
Imports System
Imports System.Collections
Dim BA As New BitArray(5)
Dim myBA2 As New BitArray(5, False)
Dim myBytes() As Byte = {1, 2, 3, 4, 5}
Dim myBA3 As New BitArray(myBytes)
Dim myBools() As Boolean = {True, False, True, True, False}
Dim myBA4 As New BitArray(myBools)
Dim myInts() As Integer = {6, 7, 8, 9, 10}
Dim myBA5 As New BitArray(myInts)
نحوه خواندن اطلاعات تیز به صورت زیر است:
MsgBox(myBA.Item(2))
Count و Length نیز تعداد و طول رشته بیتی را برمیگرداند
MsgBox(BA.Count)
MsgBox(BA.Length)
لینک کمکی به MSDN برای BitVector32
ساختاری از آرایه از 0 و 1 ها که 32 از حافظه را میگیرد
Imports System.Collections.Specialized
'ساخت یک BitVector با تمام خانه های False
Dim myBV As New BitVector32(0)
Dim myBit2 As Integer = BitVector32.CreateMask(myBit1)
Dim myBit3 As Integer = BitVector32.CreateMask(myBit2)
Dim myBit4 As Integer = BitVector32.CreateMask(myBit3)
Dim myBit5 As Integer = BitVector32.CreateMask(myBit4)
'نحوه نمایش آنها
MsgBox(myBV.ToString())
myBV(myBit1) = True
MsgBox(myBV.ToString())
myBV(myBit3) = True
MsgBox(myBV.ToString())
myBV(myBit5) = True
MsgBox(myBV.ToString())
توسعه دهندگان (همون برنامه نویسان خودمون) اغلب نیاز دارند تا گروهی از شیء های مرتبط با هم را ذخیره کنند.
مثل ساختن یک دفتر تلفن و یا دفتر پست الکترونیکی که در آن نیاز دارید که هم عکس و هم متن و شاید هم صدای ذخیره شده طرف را ذخیره کنید.
در دات نت فضایی (NAMESPACE) ای به نام System.Collections وجود دارد که انواع مختلف داده را پشتیبانی میکند
دسته اول از این نوع داده ها عبارتند از:
Imports System.Collections
Imports System.IO ' For use FileStream
Dim al As New ArrayList()
al.Add("Hello")
al.Add("World")
al.Add(5)
al.Add(New FileStream("delemete", FileMode.Create))
MsgBox("The array has " & al.Count.ToString & " items:")
For Each s As Object In al
ListBox1.Items.Add(s.ToString())
Next
نمونه دیگر برای ArrayList و استفاده از دستورات Insert و Remove و Sort در آن
A
Hello
is
not
this
World
ادامه مطلب ...
استاد این کافیه؟
نوشتن کمرنگشم دارم کار میکنم
فعلا حتما باید روی هارد ذخیره کنه
بعد بخونه اگر در MemoryStream بریزه بهتره. حالا ببینیم دوستان دارن چه راهی میرن
من برای چرخاندن تصویر از
PictureBox2.Image.RotateFlip(RotateFlipType.Rotate180FlipX)
استفاده کرده ام و برای کمرنگ کردن تصویر از تابع زیر
Private Function Lighter(ByVal imgLight As Image, ByVal level As Integer, ByVal nRed As Integer, ByVal nGreen As Integer, ByVal nBlue As Integer) As Image
Dim graphics_1 As Graphics = Graphics.FromImage(imgLight)
Dim pLight As New Pen(Color.FromArgb(210, nRed, nGreen, nBlue), imgLight.Width * 2)
graphics_1.DrawLine(pLight, -1, -1, imgLight.Width, imgLight.Height)
graphics_1.Save()
graphics_1.Dispose()
Return imgLight
End Function
موقع صدا زدن برنامه هم از دستور زیر
PictureBox2.Image = Lighter(PictureBox2.Image, System.Math.Max(System.Threading.Interlocked.Increment(80), 80 - 1), colToFadeTo.R, colToFadeTo.G, colToFadeTo.B)
انشاءااله در همین پست سورسش را میگزاریم
برنامه به این صورت هست که هم اسلاید شو داره و هم از شاخه کنار فایل exe به نام pictures با Getfiles همه عکس ها را در ListBox میریزد و با زدن ردیف های ListBox عکس و سایه آن عوض میشود و در موقع پخش اسلاید شو هم اگر ردیفی انتخاب شود از بقیه آن حرکت میکند و هر موقع دلمان خواست رنگ پشت زمینه را عوض میکنیم
روی عکس هم یک واترمارک شماره ردیف Listbox و نام عکس را می اندازد