Stackの一部分のみを配列として取得するメソッドは用意されていません。 そのため、全部を配列に変換した後必要な部分だけを抜き出して使うか、次のようにLINQの拡張メソッドSkipおよびTakeを組み合わせて一部分のみを取得します。

LINQの拡張メソッドSkip・Takeを使ってStackの一部分を配列に変換する
Imports System
Imports System.Collections.Generic
Imports System.Linq

Class Sample
  Shared Sub Main()
    Dim s As New Stack(Of String)()

    s.Push("Alice")
    s.Push("Bob")
    s.Push("Charlie")
    s.Push("Dave")
    s.Push("Eve")

    ' Stackの1番目から3つ分を配列に変換
    ' (Stackから要素1つ分をSkip、そこから要素3つをTake、その結果をToArray)
    Dim arr() As String = s.Skip(1).Take(3).ToArray()

    For i As Integer = 0 To arr.Length - 1
      Console.WriteLine("arr({0}) => {1}", i, arr(i))
    Next
  End Sub
End Class
実行結果
arr[0] => Dave
arr[1] => Charlie
arr[2] => Bob

MENTAにてテキストチャットによるサポートを行っています。 問題の解決法をお探しの方や.NET/C#を学習中の方はどうぞご利用ください。