Copying from a Collection Type to an Array

The ArrayList, Queue, and Stack types contain overloaded CopyTo( ) and ToArray( ) methods for copying their elements to an array. The CopyTo( ) method copies its elements to an existing one-dimensional array, overwriting the contents of the array beginning at the index you specify. The ToArray( ) method returns a new array with the contents of the type’s elements.

In the case of a Stack, ToArray( ) would return a new array containing the elements in the Stack. CopyTo( ) would copy the Stack over a pre-existing array. Example 9-17 modifies Example 9-16 to demonstrate both methods. The listing is followed by a complete analysis.

Example 9-17. Copying from a Stack to an array

Option Strict On Imports System Namespace StackDemo Class Tester Public Sub Run( ) Dim intStack As New Stack( ) 'populate the array Dim i As Integer For i = 1 To 4 intStack.Push((i * 5)) Next i 'display the Stack Console.WriteLine("intStack values:") DisplayValues(intStack) Const arraySize As Integer = 10 Dim testArray(arraySize) As Integer 'populate the array For i = 1 To arraySize - 1 testArray(i) = i * 100 Next i Console.WriteLine("Contents of the test array") DisplayValues(testArray) 'copy the intStack into the new array, start offset 3 intStack.CopyTo(testArray, 3) Console.WriteLine("TestArray after copy: ") DisplayValues(testArray) 'copy the entire source Stack ' to a new standard array Dim myArray As Object( ) = intStack.ToArray( ) 'display the values of the ...

Get Programming Visual Basic .NET, Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.