From Xojo Documentation


Arrays.LastIndex(Optional dimension As Integer = 1) As Integer

New in 2020r2

Supported for all project types and targets.

Returns the index of the last element in the array. The optional parameter allows you to get the last index of a specific dimension if the array is multi-dimensional.


result = array.LastIndex(index)

Part Type Description
result Integer The index of the last element in the array specified.

If the passed array has no elements, result is set to -1.

array Array of any data type The array whose last element number you want.
dimension Integer Relevant only for multi-dimensional arrays. Used to specify the dimension for which you want the last index.

The first dimension is numbered 1. If passed a non-existent dimension, it raises an OutOfBoundsException error.


All arrays are indexed starting at position 0. Arrays can have a maximum index value of 2,147,483,646.

For multi-dimensional arrays, LastIndex returns the index of the last element of the dimension you specify, or, if you do not specify a dimension, it returns the value for the first dimension. The first dimension is numbered 1.

Sample Code

This code replaces each occurrence of X in an array with Y.

For i As Integer = names.FirstIndex To names.LastIndex
If names(i) = "X" Then
names(i) = "Y"
End If

The following code returns -1 because the newly-declared array has no elements:

Var i() As Integer
Var j As Integer
j = i.LastIndex

The following code of a 2-dimensional array returns 5 in the variable i and 3 in the variable j (remember that the first dimension is numbered 1).

Var i, j As Integer
Var aNames(5, 3) As String
i = aNames.LastIndex
j = aNames.LastIndex(2)

See Also

Var statement; Arrays concept; ParamArray keyword, Arrays.FirstIndex method