一方、Stackではインデクサがサポートされないのでfor文による列挙はできません。 for文でインデックスを用いた列挙を行うためには、Stackを配列に変換してから列挙するか、LINQの拡張メソッドSelectを使って次のようにします。

LINQのSelect拡張メソッドを使ってStackに対してインデックス付きの列挙を行う
Option Infer On

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")

    ' Selectメソッドを使ってStackの要素をインデックス付きで列挙する
    For Each pair In s.Select(Function(e, i)
      Return New With {.Element = e, .Index = i}
    End Function)
      Console.WriteLine($"{pair.Index} => {pair.Element}")
    Next
  End Sub
End Class
実行結果
0 => Eve
1 => Dave
2 => Charlie

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