How to: Assign One Array to Another Array (Visual Basic)
Updated: July 20, 2015
For the latest documentation on Visual Studio 2017, see Visual Studio 2017 Documentation.
Because arrays are objects, you can use them in assignment statements like other object types. An array variable holds a pointer to the data constituting the array elements and the rank and length information, and an assignment copies only this pointer.
Ensure that the two arrays have the same rank (number of dimensions) and compatible element data types.
Use a standard assignment statement to assign the source array to the destination array. Do not follow either array name with parentheses.
Dim formArray() As System.Windows.Forms.Form Dim controlArray() As System.Windows.Forms.Control controlArray = formArray
When you assign one array to another, the following rules apply:
Equal Ranks. The rank (number of dimensions) of the destination array must be the same as that of the source array.
Provided the ranks of the two arrays are equal, the dimensions do not need to be equal. The number of elements in a given dimension can change during assignment.
Element Types. Either both arrays must have reference type elements or both arrays must have value type elements. For more information, see Value Types and Reference Types.
If both arrays have value type elements, the element data types must be exactly the same. The only exception to this is that you can assign an array of
Enumelements to an array of the base type of that
If both arrays have reference type elements, the source element type must derive from the destination element type. When this is the case, the two arrays have the same inheritance relationship as their elements. This is called array covariance.
The compiler reports an error if the above rules are violated, for example if the data types are not compatible or the ranks are unequal. You can add error handling to your code to make sure that the arrays are compatible before attempting an assignment. You can also use the TryCast Operator keyword if you want to avoid throwing an exception.