How to: Initialize an Array Variable 

You can initialize an array at the same time you create it, as part of the New (Visual Basic) clause. You can also initialize it in subsequent assignment statements.

The aspects of an array that you can initialize are the following:

  • The index upper bounds, which specify the lengths of the array's dimensions

  • The values of some or all of the array's elements

You can initialize either of these without initializing the other. However, if you supply element values but not upper bounds, the number of values you supply determines the upper bounds.

To initialize an array in the New clause at creation time

  • In the New clause, specify the index upper bound inside the parentheses, and supply the element values inside the braces ({}). The following example declares, creates, and initializes a variable to hold an array with elements of the Char Data Type (Visual Basic), specifying the upper bound and the values.

    Dim testChars As Char() = New Char(2) {"%"c, "&"c, "@"c}
    

    Following the execution of this statement, the array in variable testChars has length 3, with elements at index 0 through index 2 holding initialized values. If you supply both the upper bound and the values, you must include a value for every element from index 0 through the upper bound.

    Note the literal type character c, which forces a character literal to the Char data type. Without any type character, a literal enclosed within double quotes (" ") defaults to String.

    You do not need to specify the index upper bound if you supply element values in the New clause. The following example declares, creates, and initializes a variable to hold an array with elements of the Boolean Data Type (Visual Basic), specifying only the element values.

    Dim answers As Boolean() = New Boolean() {True, True, False, True}
    

    Following the execution of this statement, the array in variable answers has length 4, with elements at indexes 0 through 3 holding initialized values.

You can initialize the index upper bound without initializing any elements. If you create an array in this way, you must use a subsequent assignment statement to initialize each element value.

To initialize an array in subsequent assignment statements

  1. Specify the index upper bound in the array variable declaration.

  2. Use one or more assignment statements, each of which assigns a value to one of the array's elements. The following example declares and creates a variable to hold an array with elements of the String Data Type (Visual Basic), and supplies two element values in subsequent statements.

    Dim comments(30) As String
    comments(0) = "This is the first comment."
    comments(5) = "This is the sixth comment."
    

    Following the execution of these statements, the array in variable comments has length 31, with elements at indexes 0 and 5 holding initialized values, and the other 29 elements holding default values. If you initialize an array in this way, you can initialize some elements and skip over others.

-or-

  • Use the ReDim Statement (Visual Basic) to initialize the array's length.

    ReDim comments(5)
    

    Following the execution of this statement, the array in variable comments has length 6, with all the elements holding default values.

    Note

    You can initialize the index upper bound in only one place. If you specify an upper bound in the parentheses following the array variable name, you cannot use a New clause. If you specify the upper bound in the parentheses in the New clause, you must leave the parentheses following the variable name empty.

See Also

Tasks

How to: Declare an Array Variable
How to: Create an Array
How to: Initialize a Multidimensional Array
How to: Initialize a Jagged Array
Troubleshooting Arrays

Concepts

Overview of Arrays in Visual Basic

Other Resources

Arrays in Visual Basic