class Program
{
static void Main(string[] args)
{
Queue ar = new Queue();
ar.Enqueue(45);
ar.Enqueue(23);
ar.Enqueue(2);
ar.Enqueue(87);
foreach (int x in ar)
{
Console.Write("{0} ", x);
}
Console.ReadLine();
}
}
我知道如何使用foreach循环从队列中检索值。但是我可以知道在for循环的帮助下可以做同样的事情吗?
我尝试了以下代码。但是ar [i]不是有效的代码。ar [i]的合适代码是什么?
for (int i = 0 ; i < ar.count ; i++) {
Console.Write("{0} ", ar[i]);
}
将for
-loop用作a并没有多大意义,Queue
因为它不是具有索引(例如IList<T>
)的集合。因此,您不能随机访问项目(如使用数组:)ar[0]
。您可以使用Queue<T>.Dequeue
获取第一个并将其删除,或使用Queue<T>.Peek
返回第一个而不删除它。
如果使用for循环,您甚至会得到预期的行为:
for(int i = 0; i < ar.Count; i++)
Console.Write("{0} ", ar.Dequeue());
这会显示并显示所有4个项目吗?不,仅前两个是因为Queue.Count
循环中的动态减少,而计数器变量i
增加,因此循环在2处停止。
因此,for
-loop只是该集合的错误循环类型。Awhile
比较合适:
while(ar.Count > 0)
Console.Write("{0} ", ar.Dequeue());
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句