Queueから配列へ変換する場合にはToArrayメソッドやCopyToメソッドが使えます。 ToArrayメソッドではQueueの内容を配列に変換したものが得られ、CopyToメソッドではQueueの内容を既存の配列にコピーします。 変換・コピーした後の配列の内容は、列挙操作を行った場合と同様にQueueの内容を一つずつDequeueした場合と同じ順序になります。 当然、変換・コピーの前後でQueueの内容は変化しません。
ToArrayメソッドでQueueを配列に変換する・CopyToメソッドでQueueの内容を配列にコピーする
Imports System
Imports System.Collections.Generic
Class Sample
Shared Sub Main()
Dim q As New Queue(Of String)()
q.Enqueue("Alice")
q.Enqueue("Bob")
q.Enqueue("Charlie")
' 配列に変換
Console.WriteLine("[ToArray]")
Dim arr1() As String = q.ToArray()
For i As Integer = 0 To arr1.Length - 1
Console.WriteLine("arr1({0}) => {1}", i, arr1(i))
Next
' 配列にコピー
Console.WriteLine("[CopyTo]")
Dim arr2(q.Count - 1) As String
q.CopyTo(arr2, 0)
For i As Integer = 0 To arr2.Length - 1
Console.WriteLine("arr2({0}) => {1}", i, arr2(i))
Next
End Sub
End Class
実行結果
[ToArray] arr1(0) => Alice arr1(1) => Bob arr1(2) => Charlie [CopyTo] arr2(0) => Alice arr2(1) => Bob arr2(2) => Charlie