Това гарантира ли винаги да отпечатва 123
?
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.
Queue<T>.GetEnumerator()
има своя собствена MSDN страница, включително примерен код, който заявява, чеIEnumerable
, което използва повикванетоforeach
, ще се държи по същия начин катоPeek()
иPop()
. - person Scott Chamberlain   schedule 26.08.2013Queue<T>
? Изглежда ми като добра препратка (как иначе би функциониралQueue<T> b = new Queue<T>(a)
?). - person user7116   schedule 26.08.2013Queue<T>
е имплементиран като кръгов буфер,Queue<T> b = new Queue<T>(a)
може да бъде имплементиран чрез копиране на резервния масив и индекситеHead
иTail
. Няма да има нужда да повтаряте елементите. - person Jim Mischel   schedule 27.08.2013