تعریف یک متغیر از نوع لغت نامه (Dictionary)

پارامترها: کلید ها(Keys) و مقادیر(Values)

Type Parameters

TKey

 The type of the keys in the dictionary.

TValue

 The type of the values in the dictionary.

پارامتر TKey : نوع محتوای کلیدهای(Keys) لغت نامه توسط این پارامتر تعیین می شود.

پارامتر TValue: نوع محتوای مقادیر در لغت نامه توسط این پارامتر تعیین می شود.

 

 در این بخش آشنا خواهید شد:

 

  1. تعریف متغیری با کاربرد یک لغت نامه (Dictionary)
  2. اضافه کردن آیتم های لغت نامه
  3. دستیابی به یک آیتم از لغت نامه
  4. تغییر یک آیتم از لغت نامه
  5. حذف یک آیتم از لغت نامه
  6. پاکسازی لغت نامه

 

  1. تعریف متغیری با کاربرد یک لغت نامه (Dictionary)

‌‌‌ Integer Keys And String Values'

Dim List As New Dictionary (Of Integer, String)

String Keys and Values'

Dim List As New List (Of String, String)

' or each one type you want …

 

ایجاد یک لغت نامه با نوع محتوای مقدار یک کلاس:

' Import Namespace if need to use…

Imports System.Collections.Generic

 

'Define a Class with any Property

'to create A List of this type

Public Module MyModule

      'Define Class with any Properties

      Public Class ClassA

            Sub New ()

             MyBase.New ()

            End Sub

            Sub New(ByVal Name$, ByVal Family$)

             MyBase.New()

             NameVar = Name

             ValueVar = Value

            End Sub

            Dim NameVar As String

Dim FamilyVar As String

            Public Property Name() As String

                  Get

                        Return NameVar

                  End Get

                  Set (ByVal Value As String)

                        NameVar = Value

                  End Set

            End Property

            Public Property Family () As String

                  Get

                        Return FamilyVar

                  End Get

                  Set (ByVal Value As String)

                        FamilyVar = Value

                  End Set

            End Property

      End Class

      'Define a Dictionary by Integer Type for Keys and ClassA Type for Values

      Public MyDictionary As New Dictionary (Of Integer, ClassA)

End Module

  1. اضافه کردن آیتم های لغت نامه

برای اضافه کردن یک آیتم به لغت نامه از انواع محتوای معمول مثل(Integer, String,…)

 

'Define A Dictionary Variable

Dim MyDict As New Dictionary(Of Integer, String)

 

'Add New Item in Dictionary…

MyDict.Add(0, "Item1 Value")

MyDict.Add(1, "Item2 Value")

MyDict.Add(2, "Item3 Value")

_______________________________________________________________________________

'Define A Dictionary Variable

Dim MyDict As New Dictionary(Of String, String)

 

'Add New Item in Dictionary…

MyDict.Add("Item1", "Item1 Value")

MyDict.Add("Item2", "Item2 Value")

MyDict.Add("Item3", "Item3 Value")

___________________________________________________________

برای اضافه کردن آیتم های متعدد روش های مختلفی وجود دارد که در اینجا با یکی ازین روش ها آشنا می شوید:

'Define A Dictionary Variable

Dim MyDict As New Dictionary(Of String, String)

'Create an String Array of Names and Families

Dim Fields As String() = {"Name1", "Famil1", "Name2", "Famil2", "Name3" ,"Famil3"}

'Define Need Variables…

Dim Name, Family As String

'Add Fields Array Values into A Defined Dictionary Variable

 For i = 0 To Fields.Length -1 Step 2

  Name = Fields(i)

  Family = Fields(i + 1)

     MyDict.Add(Name, Family)

    Next i

 

  • تذکر: در Dictionary پارامتر Key مانند یک ID عمل می کند که برای مدیرت(ویرایش و حذف و...) آیتم ها از آن استفاده می شود.

 

  1. دستیابی به یک آیتم از لغت نامه

Dim Name, Family, Value As String

Name = "Name1"

Family = MyDict(Name)

Value = String.Format("{0}: {1}", Name, Family)

MsgBox(Value)

' Return Value at MessageBox:

' Name1: Famil1

  

   در صورتی که بخواهیم همه آیتم ها لیست شود:

  Dim Name, Family, Value As String

  For Each Item As KeyValuePair(Of String, String) In MyDict

Name = Item.Key

Family = Item.Value

Value = String.Format("{0}: {1}", Name, Family)

ListBox1.Items.Add(Value)

  Next

 

  • تذکر: در لغت نامه (Dictionary) آیتم ها بعنوان KeyValuPair(Of TKey, TValue) شناخته می شوند، به این معنی که نوع محتوای کلید و مقدار برابر با نوع کلید و مقدار از Dictionary تعیین می شود:
  • تذکر: برای دسترسی به کلید از یک آیتم لغت نامه خصوصیت Key و مقدار آیتم خصوصیت Value مورد استفاده قرار می گیرد.

  

  1. تغییر مقدار یک آیتم از لغت نامه

MyDict("Name1") = "Modified Famil1"

 

  • تذکر: در لغت نامه (Dictionary)؛ امکان تغییر کلید نمی باشد و تغییر مقدار توسط کلید مربوطه، مقدار به آیتم ارائه می شود:

 

MyDict.Item("Name1") = "Modified Famil1"

 

  1. حذف یک آیتم از لغت نامه (Dictionary):

در این مثال، در صورتی که آیتم با کلید مد نظر موجود بود حذف شده و مقدار True را برمی گرداند، در غیر این صورت False.

 

Function RemoveAnItem(ByVal Name As String) As Boolean

  For Each Item As KeyValuePair(Of String, String) In MyDict

    If Item.Key.ToLower = Name.ToLower Then

     MyDict.Remove(Item.Key): Return True

    End If

   Next Item

 Return False

End Function

 

       تذکر: در صورتی که نوع محتوای کلید String باشد، برای یافتن آن توسط متود ContainsKey(key) باید کارکترها دقیقاً شبیه رشته اضافه شده باشد؛

مثال: Name => Name, name => name

 

       تذکر: برا‍ی شناسایی یک آیتم توسط متود ( ContainsKey(keyبدون توجه به بزرگی و کوچکی کاراکترها نیاز است که یک تابع و یا یک کلاس موروث از

    System.Collections.Generic.IDictionary(Of String, String)ایجاد شود.

 

  1. پاکسازی لغت نامه(Dictionary):

 'Clear all Items of Dictionary

 MyDict.Clear()

/ 0 نظر / 69 بازدید