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