VB.Net/Data Structure/ArrayList

Материал из VB Эксперт
Перейти к: навигация, поиск

Add element to an ArrayList and get its Length

Imports System
Imports System.Collections

Public Class MainClass
   Shared Sub Main()
    Dim myList As New ArrayList()
    myList.Add("aa")
    Console.WriteLine("You entered " & myList.Count() & " ITEMS.")
   End Sub 
End Class


ArrayList: add, remove, IndexOf, Count, Contains, TrimToSize, GetEnumerator

Imports System
Imports System.Collections
Public Class MainClass
   Public Shared Sub Main()
      Dim arrayList As arrayList = New arrayList(1)
      arrayList.Add("a")
      try
          Console.WriteLine(arrayList(0))
      Catch outOfRange As ArgumentOutOfRangeException
          Console.WriteLine(outOfRange.ToString())
      End Try
      Console.WriteLine(arrayList.Count)
      Console.WriteLine(arrayList.Contains("a"))
      
      Console.WriteLine(arrayList.IndexOf("a"))
      arrayList.Remove("a")
      arrayList.TrimToSize()
      Console.WriteLine(arrayList.Capacity)
      arrayList.Add("a")
      Dim enumerator As IEnumerator = arrayList.GetEnumerator()
      While enumerator.MoveNext()
         Console.WriteLine(enumerator.Current )
      End While 
   End Sub
End Class


Convert ArrayList to Array

Imports System
Imports System.Collections

Public Class MainClass
    
    Shared Sub Main(ByVal args As String())
        Dim array_list As New ArrayList
        array_list.Add("A")
        array_list.Add("B")
        array_list.Add("C")
        " Array of objects.
        Dim obj_array() As Object
        obj_array = array_list.ToArray()
        " Array of strings.
        Dim string_array() As String
        string_array = DirectCast(array_list.ToArray(GetType(String)), String())
        " Array object of objects.
        Dim astring_array As Array
        astring_array = array_list.ToArray()

    End Sub
End Class


Store different Class in an ArrayList

Imports System
Imports System.Collections

Public Class MainClass
    
    Shared Sub Main(ByVal args As String())
        Dim array_list As New ArrayList
        array_list.Add("A")
        array_list.Add(1001)
        array_list.Add("")
        
        For Each obj As Object In array_list
            Console.WriteLine(obj.GetType.ToString)
        Next obj
    End Sub
End Class


Store Objects into ArrayList

Imports System
Imports System.Collections
Public Class MainClass
    
    Shared Sub Main()
       Dim empArray As New ArrayList(  )
       Dim intArray As New ArrayList(  )
       "populate the arraylists
       Dim i As Integer
       For i = 0 To 4
           empArray.Add(New Employee(i + 100))
           intArray.Add((i * 5))
       Next i
       "print each member of the array
       For Each i In intArray
           Console.Write("{0} ", i.ToString(  ))
       Next i
       Console.WriteLine(ControlChars.Lf)
       "print each employee
       Dim e As Employee
       For Each e In empArray
           Console.Write("{0} ", e.ToString(  ))
       Next e
       Console.WriteLine(ControlChars.Lf)
       Console.WriteLine("empArray.Capacity: {0}", empArray.Capacity)
   End Sub
End Class
     Public Class Employee
         Private myEmpID As Integer
         Public Sub New(ByVal empID As Integer)
             Me.myEmpID = empID
         End Sub "New
         Public Overrides Function ToString(  ) As String
             Return myEmpID.ToString(  )
         End Function "ToString
         Public Property EmpID(  ) As Integer
             Get
                 Return myEmpID
             End Get
             Set(ByVal Value As Integer)
                 myEmpID = Value
             End Set
         End Property
     End Class "Employee


Use ArrayList to Store your own class

Imports System
Imports System.Collections
 
Public Class MainClass
    Shared Sub Main(ByVal args As String())
             Dim empArray As New ArrayList( )
             Dim intArray As New ArrayList( )
             " populate the arraylists
             Dim i As Integer
             For i = 0 To 4
                 empArray.Add(New EnumerableClass("A", "B"))
                 intArray.Add((i * 5))
             Next i
             " print each member of the array
             For Each i In intArray
                 Console.Write("{0} ", i.ToString( ))
             Next i
             Console.WriteLine(ControlChars.Lf)
             " print each employee
             Dim e As EnumerableClass
             For Each e In empArray
                 Console.Write("{0} ", e.ToString( ))
             Next e
             Console.WriteLine(ControlChars.Lf)
             Console.WriteLine("empArray.Capacity: {0}", empArray.Capacity)
    End Sub
End Class
     Public Class EnumerableClass : Implements IEnumerable
         Private strings( ) As String
         Private ctr As Integer = 0
         Private Class MyEnumerator
             Implements IEnumerator
             Private currentListBox As EnumerableClass
             Private index As Integer
             Public Sub New(ByVal currentListBox As EnumerableClass)
                 Me.currentListBox = currentListBox
                 index = -1
             End Sub
             Public Function MoveNext( ) As Boolean _
               Implements IEnumerator.MoveNext
                 index += 1
                 If index >= currentListBox.strings.Length Then
                     Return False
                 Else
                     Return True
                 End If
             End Function
             Public Sub Reset( ) _
               Implements IEnumerator.Reset
                 index = -1
             End Sub
             Public ReadOnly Property Current( ) As Object _
             Implements IEnumerator.Current
                 Get
                     Return currentListBox(index)
                 End Get
             End Property
         End Class  " end nested class
         Public Function GetEnumerator( ) As IEnumerator _
         Implements IEnumerable.GetEnumerator
             Return New MyEnumerator(Me)
         End Function
         Public Sub New( _
           ByVal ParamArray initialStrings( ) As String)
             ReDim strings(7)
             Dim s As String
             For Each s In initialStrings
                 strings(ctr) = s
                 ctr += 1
             Next
         End Sub
         Public Sub Add(ByVal theString As String)
             strings(ctr) = theString
             ctr += 1
         End Sub
         Default Public Property Item( _
           ByVal index As Integer) As String
             Get
                 If index < 0 Or index >= strings.Length Then
                     " handle bad index
                     Exit Property
                 End If
                 Return strings(index)
             End Get
             Set(ByVal Value As String)
                 strings(index) = Value
             End Set
         End Property
         Public Function GetNumEntries( ) As Integer
             Return ctr
         End Function
     End Class