StackはIEnumerable<T>を実装しているためforeach文による列挙ができます。 foreach文による列挙では、Pushした順とは逆、つまりPopするときと同じ順で要素が列挙されます。 ポップ操作とは異なり、Stackを列挙するだけでは要素の削除は行われません。
foreach文でStackの内容を列挙する
using System;
using System.Collections.Generic;
class Sample {
static void Main()
{
var s = new Stack<string>();
s.Push("Alice");
s.Push("Bob");
s.Push("Charlie");
// foreachでStackの内容を列挙
foreach (var e in s) {
Console.WriteLine(e);
}
// 列挙してもStackから要素は削除されず、内容は変わらない
Console.WriteLine($"Count = {s.Count}");
}
}
実行結果
Charlie Bob Alice Count = 3