Skip to main content

  | मौसम…

411 समाचार
Public archive edition · Attributed source reporting with original dates · AI drafts are excluded

411 REFERENCE · Wikibooks

Visual Basic .NET/Arrays

Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.

Simple arrays An array is simply a variable that can store more than one piece of data. The data is stored in a list. If you declare an integer, then that variable can only store one integer. An array of integers can store many integers. Each one is given its own number. For example, this line of code: Dim MyArray(5) As Integer will give an array like this IndexData00Nothing01Nothing02Nothing03Nothing04Nothing05Nothing Dim arrayName(upperBound) As arrayType This is similar to declaring a normal variable with one difference, the upperBound argument. Unlike previous versions versions of Visual Basic, all arrays in Visual Basic .NET start at 0 and go to the upperBound, for Example: Dim MyArray(10) As Integer will declare a variable called MyArray with space for 11 Integers. The integers are stored in MyArray(0), MyArray(1),..., MyArray(10). To declare an array and assign values in a single line, use the following Dim MyArray() As Integer = New Integer(4) { 1, 2, 3, 4, 5 } Another way to create an array is as follows Module Module1 Sub Main() Dim MyArray As System.Array MyArray = System.Array.CreateInstance(GetType(String), 4) MyArray(0) = "a" MyArray(1) = "b" MyArray(2) = "c" MyArray(3) = "d" Console.WriteLine("Press enter to continue") Console.ReadLine() End Sub End Module Note that anytime these lines are used: Dim MyArray As System.Array MyArray = System.Array.CreateInstance(GetType(String), 4) This means the same thing, and is easier to use: MyArray = System.Array.CreateInstance(GetType(String), 4) The (number) after the name of the variable declares it as a string. To access one of the elements in the array: Module Module1 Sub Main() Dim MyArray As System.Array MyArray = System.Array.CreateInstance(GetType(String), 4) MyArray(0) = "a" MyArray(1) = "b" MyArray(2) = "c" MyArray(3) = "d" Console.WriteLine(MyArray.GetValue(2)) 'returns c Console.WriteLine("Press enter to continue") Console.ReadLine() End Sub End Module How many elements do we have in the array? Module Module1 Sub Main() ' Dim MyArray As System.Array MyArray = System.Array.CreateInstance(GetType(String), 4) MyArray(0) = "a" MyArray(1) = "b" MyArray(2) = "c" MyArray(3) = "d" Console.WriteLine(MyArray.Length) 'displays 4 Console.WriteLine("Press enter to continue") Console.ReadLine() ' End Sub End Module Display all the elements in the array. Module Module1 Sub Main() ' Dim MyArray As System.Array Dim En As System.Collections.IEnumerator MyArray = System.Array.CreateInstance(GetType(String), 4) ' MyArray(0) = "a" MyArray(1) = "d" MyArray(2) = "b" MyArray(3) = "c" En = MyArray.GetEnumerator ' Do While En.MoveNext Console.WriteLine(En.Current()) Loop ' Console.WriteLine("Press enter to continue") Console.ReadLine() End Sub End Module Sort the array. Module Module1 Sub Main() ' Dim MyArray As System.Array Dim En As System.Collections.IEnumerator MyArray = System.Array.CreateInstance(GetType(String), 4) ' MyArray(0) = "a" MyArray(1) = "d" MyArray(2) = "b" MyArray(3) = "c" En = MyArray.GetEnumerator Console.WriteLine("Before sorting") Do While En.MoveNext Console.WriteLine(En.Current()) Loop Array.Sort(MyArray) En = MyArray.GetEnumerator Console.WriteLine("After sorting") Do While En.MoveNext Console.WriteLine(En.Current()) Loop ' Console.WriteLine("Press enter to continue") Console.ReadLine() End Sub End Module Sort in descending order. Module Module1 Sub Main() ' Dim MyArray As System.Array Dim En As System.Collections.IEnumerator Dim DescSortCompare = New DescSortCompareClass MyArray = System.Array.CreateInstance(GetType(String), 4) ' MyArray(0) = "a" MyArray(1) = "d" MyArray(2) = "b" MyArray(3) = "c" En = MyArray.GetEnumerator Console.WriteLine("Before descending sort") Do While En.MoveNext Console.WriteLine(En.Current()) Loop Array.Sort(MyArray, DescSortCompare) En = MyArray.GetEnumerator Console.WriteLine("After descending sort") Do While En.MoveNext Console.WriteLine(En.Current()) Loop ' Console.WriteLine("Press enter to continue") Console.ReadLine() End Sub ' Public Class DescSortCompareClass Implements IComparer ' Function Compare(ByVal x As Object, ByVal y As Object) As Integer _ Implements IComparer.Compare Return x > y End Function ' End Class End Module Reverse the array. Module Module1 Sub Main() ' Dim MyArray As System.Array Dim En As System.Collections.IEnumerator MyArray = System.Array.CreateInstance(GetType(String), 4) ' MyArray(0) = "a" MyArray(1) = "d" MyArray(2) = "b" MyArray(3) = "c" En = MyArray.GetEnumerator Console.WriteLine("Before reversing the array") Do While En.MoveNext Console.WriteLine(En.Current()) Loop Array.Reverse(MyArray) En = MyArray.GetEnumerator Console.WriteLine("After reversing the array") Do While En.MoveNext Console.WriteLine(En.Current()) Loop ' Console.WriteLine("Press enter to continue") Console.ReadLine() End Sub ' End Module Now that we have Reverse, here is another way to sort in descending order without IComparer. Module Module1 Sub Main() ' Dim MyArray As System.Array Dim En As System.Collections.IEnumerator MyArray = System.Array.CreateInstance(GetType(String), 4) ' MyArray(0) = "a" MyArray(1) = "d" MyArray(2) = "b" MyArray(3) = "c" ' En = MyArray.GetEnumerator Console.WriteLine("Before descending sort") Do While En.MoveNext Console.WriteLine(En.Current()) Loop Array.Sort(MyArray) Array.Reverse(MyArray) En = MyArray.GetEnumerator Console.WriteLine("After descending sort") Do While En.MoveNext Console.WriteLine(En.Current()) Loop ' Console.WriteLine("Press enter to continue") Console.ReadLine() End Sub End Module With Option Strict On, we would need to use SetValue to assign array elements. Option Strict On Module Module1 Sub Main() ' Dim MyArray As System.Array Dim En As System.Collections.IEnumerator MyArray = System.Array.CreateInstance(GetType(String), 4) ' MyArray.SetValue("a", 0) MyArray.SetValue("d", 1) MyArray.SetValue("b", 2) MyArray.SetValue("c", 3) ' En = MyArray.GetEnumerator Console.WriteLine("Before descending sort") Do While En.MoveNext Console.WriteLine(En.Current()) Loop Array.Sort(MyArray) Array.Reverse(MyArray) En = MyArray.GetEnumerator Console.WriteLine("After descending sort") Do While En.MoveNext Console.WriteLine(En.Current()) Loop ' Console.WriteLine("Press enter to continue") Console.ReadLine() End Sub End Module Multi-Dimensional arrays Arrays also can be multi-dimensional - 2D, 3D, 4D etc. For example, this line of code: 'Declare an 2D Array with integers(X, Y) Dim My2DArray(2, 2) As Integer Will give an array like this: IndexData0, 0Nothing0, 1Nothing0, 2Nothing1, 0Nothing1, 1Nothing1, 2Nothing2, 0Nothing2, 1Nothing2, 2Nothing 2D arrays can be used in games like a Tic-Tac-Toe. 3D arrays can be thought of as an array of 2D arrays. Where a 2D array has rows and columns, as in a game of Tic Tac Toe, the 3D array stores multiple grids of Tic Tac Toe. To declare a 3D array: 'Declare an 3D Array of integers(X, Y) Dim My3DArray(1, 2, 2) As Integer In this example, the first dimension would typically be the number of arrays in this 3D array. We know these are 2D arrays as the second dimension specifies how many rows in these arrays and the third dimension the number of columns. Arrays manipulations methods Split() : to transform a string into an array, according to the separator which is placed in parameter. Join() : to convert an array into a string. Filter() : to filter some array entries. Example: Module Module1 Sub Main() Dim ArrayName() As String = Split("lorem ipsum dolor sit", " ") Console.WriteLine(ArrayName(1)) ' displays "ipsum" ArrayName(4) = "amet" Dim ArrayContent As String = String.Join(" ", ArrayName) Console.WriteLine(ArrayContent) Dim SubArray = Filter(ArrayName, "o", True, CompareMethod.Text) Console.WriteLine(String.Join(" ", SubArray)) ' displays the words including "o" Console.ReadLine() End Sub End Module External Links Tutorial On VB.NET Arrays Tutorial On VB.NET Multidimensional Arrays All the arrays operations fr:Visual Basic .NET/Tableaux