تعریف متغیری حاوی لیستی از مقادیر

 تذکر: برای ايجاد انواع محتوا در لیست از نوع Object استفاده می شود.

 

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

 

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

 

1. تعریف یک متغیر برای ایجاد یک لیست از نوع محتوای مشخص

      برای تعریف متغیر شناخت نحوه تعریف یک متغیر طبق سطح دسترسی نیاز است،

 و هم چنین نوع محتوای مقادیر لیست.

 

مثال: ایجاد یک لیست با نوع محتوای مشخص:

' Integer

Dim List As New List(Of Integer)

' String

Dim List As New List(Of 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 List of ClassA Type

      Public MyList As New List(Of ClassA)

End Module

 

2. اضافه کردن مقدار(آیتم) به لیست

   پس از تعریف متغیر و ایجاد لیست مورد نظر با سطح دسترسی مد نظر برای اضافه کردن آیتم یا همان مقدار از متود Add استفاده می شود:

' Kind 1:

MyList.Add(New ClassA("Your Name", "Your Family"))

________________________________________________________

' Kind 2:

Dim Item1 As New ClassA("Your Name", "Your Family")

MyList.Add(Item1)

_________________________________________________________

   'Kind 3:

Dim Item1 As New ClassA()

Item1.Name = "Your Name"

Item1.Family = "Your Family"

MyList.Add(Item1)

' and …

_________________________________________________________

 

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

 

' Create an String Array of Names and Families

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

 

      ' Add Fields Array Values into A Defined List

'Variable

Dim Item As ClassA

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

      Item = New ClassA()

      Item.Name = Fields(i)

      Item.Family = Fields(I + 1)

      MyList.Add(Item)

Next i

 

3. یافتن یک آیتم در لیست تعریف شده:

     

در این مثال از یک لیست تعریف شده با نوع محتوای عددی استفاده می شود:

Dim List As New List(Of Integer)

 

For i = 0 To 10 Step 2

List.Add(i)

Next i

' Find an Item:

Dim B As Boolean

B = List.Contains(10)

MsgBox(B)

 

در صورت موجود بودن عدد مد نظر True در غیر اینصورت False را در جعبه پیام نمایش میدهد.

 

  ' Create an String Array of Names and Families

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

        ' Add Fields Array Values into A Defined List

        'Variable with set FItem

        Dim FItem As ClassA = Nothing

        Dim Item As ClassA

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

            Item = New ClassA()

            Item.Name = Fields(i)

            Item.Famil = Fields(i + 1)

            If i = 2 Then

                FItem = Item

            End If

            List.Add(Item)

        Next i

        MsgBox(List.Contains(FItem))

 

مثال دقیق تر: تابعی که موجودیت یک آیتم از نوع یک کلاس با خصوصیات متعدد را طبق خصوصیت مد نظر اعلام می کند.

Function ExistAnItem(ByVal Name As String) As Boolean

  For Each Item As ClassA In MyList

   With Item

    If .Name.ToLower = Name.ToLower Then

     Return True

    End If

   End With

  Next Item

 Return False

End Function

 

       تذکر: در صورتی که نوع محتوا String باشد، برای یافتن آن باید کارکترها دقیقاً شبیه رشته اضافه شده باشد؛ مثال: Name => Name, name => name

       برا‍ی شناسایی یک آیتم بدون توجه به بزرگی و کوچکی کاراکترها نیاز است که یک تابع و یا یک کلاس موروث از کلاس  System.Collections.Generic.IList(Of String)ایجاد شود.

 

4. تغییر یک آیتم از لیست

     

در این مثال؛ آیتم دوم از لیست طبق index از لیست ویرایش می شود:

  ' MyList Items

 '0: "Name1", "Famil1"

 '1: "Name2", "Famil2" // Second Item

'2: "Name3", "Famil3"

With MyList(1)

.Name = "EditedName2"

.Family = "EditedFamily2"

End With

 

در این مثال؛ مقدار خصوصیت Name مد نظر قرار گرفته است:

  ' MyList Items

 '0: "Name1", "Famil1"

 '1: "Name2", "Famil2" // Second Item

'2: "Name3", "Famil3"

For Each Item As ClassA In MyList

 With Item

  If .Name.ToLower = "name2" Then

   .Name = "EditedName2"

   .Family = "EditedFamily2"

  End If

 End With

Next Item

5. حذف یک آیتم از لیست (متود (Remove:

      برای حذف یک آیتم از لیست در صورتی که نوع محتوا از یک کلاس با خصوصیات متعدد باشد:

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

 

Function RemoveAnItem(ByVal Name As String) As Boolean

  For Each Item As ClassA In MyList

   With Item

    If .Name.ToLower = Name.ToLower Then

     MyList.Remove(Item): Return True

    End If

   End With

  Next Item

 Return False

End Function

 

  مثال 2: در این مثال، از متود RemoveAt استفاده می شود، که نیاز به شماره آیتم از پایه صفر(0) یا همان Index می باشد:

MyList.RemoveAt(index:= 1)

  

مثال 3: آیتم ها از نوع رشته است:

Function DeleteAnItem(ByVal value As String) As Boolean

  For Each Item As String In MyList

    If Item.ToLower = value.ToLower Then

     MyList.Remove(Item): Return True

    End If

  Next Item

 Return False

End Function

 6. پاکسازی لیست از آیتم (متود Clear):

' Clear all Items of List

MyList.Clear()

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