VB.Net/Data Structure/ArrayList
Содержание
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