From Xojo Documentation
Arrays are an indexed collection of data for a specific data type. Arrays themselves are not a data type, but any data type can be defined as an array using the Dim statement or as a property.
Dim arrayName() As dataType
Dim arrayName(size [,size2,...sizeN]) As dataType
Dim arrayName(), arrayNameN() As dataType [= Array(value1, value2, ..., valueN)]
|arrayName||Variable name||The name of the array.|
|size||Integer||(Optional) The upper bound of the array. Size must be integer literals or integer constants.
If you do not specify a size, then array starts as empty. You can add elements using the Append method.
|sizeN||Integer||(Optional) The upper bound of the next dimension of the array if you are creating a multi-dimensional array.
You pass as many size parameters as dimensions in the array. The size parameters must be integer literals or integer constants.
|dataType||Data type or class||The data type or class of the array.|
|value1...valueN||values||Values that match the dataType to add to the array.|
All arrays are indexed starting at position 0. Arrays can have a maximum index value of 2,147,483,646.
Arrays are treated as objects so be aware that assigning an array to another variable or passing an array as a parameter does not make a copy of the array. Instead you get a new variable that points to the original array so any changes you make to the "2nd" array also affects the first array. If you need an actual copy of the array you will have to manually copy its values using a loop.
Arrays are often created by specifying the upper bound for the array when you Dim it. Because arrays all start at position 0, an array has one more element than the number you use as the upper bound. For example, this creates an array with 5 elements, which you can then access using the index:
aNames(0) = "Bob"
aNames(1) = "Bill"
aNames(2) = "Ben"
aNames(3) = "Brad"
aNames(4) = "Bart"
Constants can be used when declaring the upper bound of an array:
You can also create empty arrays that do not specify a size. An empty array has a Ubound of -1. At run-time, your code can add elements to it or you can choose to Redim it to a specific size. These are the two ways to create an empty array:
If you try to access an element of an array that does not exist, you will get an OutOfBoundsException. Here are some examples that would raise the exception:
aFirstName(1) = "Bill" // aFirstName is still empty
Use the methods Append and Insert to add additional elements to arrays. These methods are the only ways to add elements to empty arrays, but they can also be used to extend the size of any single-dimension array.
A multi-dimensional array has elements in 2 or more dimensions. A table would be an example of a 2-dimensional array because it has columns and rows.
Most of the array methods are not supported for multi-dimensional arrays.
You declare multi-dimensional arrays by specifying the upper bound for each dimension:
Remove All Elements
The fast way to remove all elements from an array is to Redim it as empty like this:
For i As Integer = 1 To 1000
// myArray is now empty
An empty array has a Ubound of -1.
Objects in Arrays
Arrays of objects work like other arrays except you'll have to deal with possible Nil values just as you would with objects that are not in an array.
If the array index is valid and its value is Nil and you try to use the value, then you get a NilObjectException, just as you would if you try to use any non-array value that is Nil.
If an array index is not valid then that’s an OutOfBoundsException and is not related to anything being Nil.