這是保證總是打印123
?迭代隊列<T>保證按隊列順序?
Queue<string> theQueue = new Queue<string>();
theQueue.Enqueue("1");
theQueue.Enqueue("2");
theQueue.Enqueue("3");
foreach(var str in theQueue)
{
Console.Write(str);
}
Console.WriteLine();
編輯: 我完全同意,在任何其他順序列舉了隊列會明顯不正確。這就是我問這個問題的原因。但是,抽象數據類型queue
只能保證其操作的enqueue
和dequeue
操作。
我正在尋找一個引用文檔的答案,以確保.NET BCL中的這種排序。
我想大多數人都沒有注意到你的問題。隊列由推送和彈出如何工作定義。在此方法中迭代沒有在隊列的正常定義中定義 – bengoesboom
@bengoesboom [是它已定義](http://msdn.microsoft.com/zh-cn/library/4a9449ty.aspx),「隊列 .GetEnumerator ()'有它自己的MSDN頁面,其中包含示例代碼,該代碼聲明'foreach'調用使用的'IEnumerable'將與'Peek()'和'Pop()'行爲相同。 –
您是否閱讀過'Queue'的MSDN頁面?似乎對我有很好的參考價值(隊列 b =新隊列(a)'function?)。 –
user7116