如何检查队列是否为空?

时间:2011-11-01 15:17:04

标签: c# queue is-empty

在C#中,如何检查队列是否为空?

我想遍历Queue的元素,我需要知道何时停止。我怎么能做到这一点?

8 个答案:

答案 0 :(得分:41)

假设您的意思是Queue<T> 可以使用:

if (queue.Count != 0)

但为什么要这么麻烦?无论如何只是迭代它,如果它是空的,你将永远不会进入身体:

Queue<string> queue = new Queue<string>();

// It's fine to use foreach...
foreach (string x in queue)
{
    // We just won't get in here...
}

答案 1 :(得分:18)

我建议使用Any()方法,因为这不会对整个队列进行计数,这在性能方面会更好。

Queue myQueue = new Queue();
    if(myQueue.Any()){
      //queue not empty
    }

答案 2 :(得分:8)

假设您的意思是System.Collections.Generic.Queue<T>

if(yourQueue.Count != 0) { /* Whatever */ }

应该这样做。

答案 3 :(得分:3)

    Queue test = new Queue();
    if(test.Count > 0){
      //queue not empty
    }

答案 4 :(得分:2)

有一个扩展方法.Count()可用,因为Queue实现了IEnumerable。

您也可以执行_queue.Any()来查看其中是否有任何元素。

答案 5 :(得分:1)

您可以检查其Count属性是否等于0.

答案 6 :(得分:0)

YourQueue.GetEnumerator()。MoveNext()== true

答案 7 :(得分:0)

TryPeek() 会让你检查 Queue 是否有一个元素。

Queue q = new Queue();
if (!q.TryPeek(out object i)) {
    /* Queue is empty */
    ....
}