VB.Net Tutorial/Collections/ArrayList
Содержание
- 1 Add different data types to ArrayList
- 2 Add user defined object to ArrayList
- 3 Convert ArrayList to array
- 4 Remove element in an ArrayList by index
- 5 Use ArrayList.Contains to check if a object already exists
- 6 Use ArrayList to store objects
- 7 Use DirectCast to convert ArrayList to array
- 8 Use For Each to loop through the ArrayList
Add different data types to ArrayList
<source lang="vbnet">Imports System.Collections public class AddElementsToArrayLista
public Shared Sub Main Dim alist1 As New ArrayList() alist1.Add("Hello") "Add a System.String alist1.Add(714) "Add a System.Int32 alist1.Add(New DateTime(2003, 1, 1)) "Add a System.DateTime alist1.Add(#1/1/2003#) "Add a System.DateTime alist1.Add(4.5) "Add a System.Double alist1.Add(4.5F) "Add a System.Single Dim o As Object For Each o In alist1 Console.WriteLine(o & ": " & o.GetType().ToString()) Next End Sub
End class</source>
Hello: System.String 714: System.Int32 01/01/2003: System.DateTime 01/01/2003: System.DateTime 4.5: System.Double 4.5: System.Single
Add user defined object to ArrayList
<source lang="vbnet">Imports System.Collections Structure Person
Dim strLastName As String Dim strFirstName As String Dim strPhone As String Dim strEMail As String
End Structure
public class Test
public Shared Sub Main Dim alPersons As New ArrayList Dim udtPerson As New Person "Add the first person. With udtPerson .strLastName = "S" .strFirstName = "J" .strPhone = "5" .strEMail = "j@s.ru" End With alPersons.Add(udtPerson) "Add the second person. With udtPerson .strLastName = "J" .strFirstName = "S" .strPhone = "5" .strEMail = "s@s.ru" End With alPersons.Add(udtPerson) "Create the third person. With udtPerson .strLastName = "J" .strFirstName = "K" .strPhone = "5" .strEMail = "k@s.ru" End With "Insert the third person, but first check if they already exists. If Not alPersons.Contains(udtPerson) Then alPersons.Insert(1, udtPerson) End If "Remove the first person. alPersons.RemoveAt(0) "Display the array list values. Console.WriteLine("The array list contains " & alPersons.Count & " elements.") For Each udtPerson In alPersons Console.WriteLine("NAME: " & udtPerson.strFirstName & " " & udtPerson.strLastName) Next udtPerson
End Sub
End class</source>
The array list contains 2 elements. NAME: K J NAME: S J
Convert ArrayList to array
<source lang="vbnet">Imports System.Collections public class Test
public Shared Sub Main Dim array_list As New ArrayList array_list.Add("A") array_list.Add("B") array_list.Add("C") " Array object of objects. Dim astring_array As Array astring_array = array_list.ToArray()
End Sub
End class</source>
Remove element in an ArrayList by index
<source lang="vbnet">Imports System.Collections Structure Person
Dim strLastName As String Dim strFirstName As String Dim strPhone As String Dim strEMail As String
End Structure
public class Test
public Shared Sub Main Dim alPersons As New ArrayList Dim udtPerson As New Person "Add the first person. With udtPerson .strLastName = "S" .strFirstName = "J" .strPhone = "5" .strEMail = "j@s.ru" End With alPersons.Add(udtPerson) "Add the second person. With udtPerson .strLastName = "J" .strFirstName = "S" .strPhone = "5" .strEMail = "s@s.ru" End With alPersons.Add(udtPerson) "Create the third person. With udtPerson .strLastName = "J" .strFirstName = "K" .strPhone = "5" .strEMail = "k@s.ru" End With "Insert the third person, but first check if they already exists. If Not alPersons.Contains(udtPerson) Then alPersons.Insert(1, udtPerson) End If "Remove the first person. alPersons.RemoveAt(0) "Display the array list values. Console.WriteLine("The array list contains " & alPersons.Count & " elements.") For Each udtPerson In alPersons Console.WriteLine("NAME: " & udtPerson.strFirstName & " " & udtPerson.strLastName) Next udtPerson
End Sub
End class</source>
The array list contains 2 elements. NAME: K J NAME: S J
Use ArrayList.Contains to check if a object already exists
<source lang="vbnet">Imports System.Collections Structure Person
Dim strLastName As String Dim strFirstName As String Dim strPhone As String Dim strEMail As String
End Structure
public class Test
public Shared Sub Main Dim alPersons As New ArrayList Dim udtPerson As New Person "Add the first person. With udtPerson .strLastName = "S" .strFirstName = "J" .strPhone = "5" .strEMail = "j@s.ru" End With alPersons.Add(udtPerson) "Add the second person. With udtPerson .strLastName = "J" .strFirstName = "S" .strPhone = "5" .strEMail = "s@s.ru" End With alPersons.Add(udtPerson) "Create the third person. With udtPerson .strLastName = "J" .strFirstName = "K" .strPhone = "5" .strEMail = "k@s.ru" End With "Insert the third person, but first check if they already exists. If Not alPersons.Contains(udtPerson) Then alPersons.Insert(1, udtPerson) End If "Remove the first person. alPersons.RemoveAt(0) "Display the array list values. Console.WriteLine("The array list contains " & alPersons.Count & " elements.") For Each udtPerson In alPersons Console.WriteLine("NAME: " & udtPerson.strFirstName & " " & udtPerson.strLastName) Next udtPerson
End Sub
End class</source>
The array list contains 2 elements. NAME: K J NAME: S J
Use ArrayList to store objects
<source lang="vbnet">Option Strict On
Imports System Imports System.Collections 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 Class Tester Shared Sub Main( ) Dim empArray As New ArrayList( ) Dim intArray As New ArrayList( ) Dim i As Integer For i = 0 To 4 empArray.Add(New Employee(i + 100)) intArray.Add((i * 5)) Next i For Each i In intArray Console.Write("{0} ", i.ToString( )) Next i Console.WriteLine(ControlChars.Lf) 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</source>
0 5 10 15 20 100 101 102 103 104 empArray.Capacity: 8
Use DirectCast to convert ArrayList to array
<source lang="vbnet">Imports System.Collections public class Test
public Shared Sub Main Dim array_list As New ArrayList array_list.Add("A") array_list.Add("B") array_list.Add("C") " Array of strings. Dim string_array() As String string_array = DirectCast(array_list.ToArray(GetType(String)), String())
End Sub
End class</source>
Use For Each to loop through the ArrayList
<source lang="vbnet">Imports System.Collections Structure Person
Dim strLastName As String Dim strFirstName As String Dim strPhone As String Dim strEMail As String
End Structure
public class Test
public Shared Sub Main Dim alPersons As New ArrayList Dim udtPerson As New Person "Add the first person. With udtPerson .strLastName = "S" .strFirstName = "J" .strPhone = "5" .strEMail = "j@s.ru" End With alPersons.Add(udtPerson) "Add the second person. With udtPerson .strLastName = "J" .strFirstName = "S" .strPhone = "5" .strEMail = "s@s.ru" End With alPersons.Add(udtPerson) "Create the third person. With udtPerson .strLastName = "J" .strFirstName = "K" .strPhone = "5" .strEMail = "k@s.ru" End With "Insert the third person, but first check if they already exists. If Not alPersons.Contains(udtPerson) Then alPersons.Insert(1, udtPerson) End If "Remove the first person. alPersons.RemoveAt(0) "Display the array list values. Console.WriteLine("The array list contains " & alPersons.Count & " elements.") For Each udtPerson In alPersons Console.WriteLine("NAME: " & udtPerson.strFirstName & " " & udtPerson.strLastName) Next udtPerson
End Sub
End class</source>
The array list contains 2 elements. NAME: K J NAME: S J