Как я могу проверить, пуста ли очередь? - PullRequest
32 голосов
/ 01 ноября 2011

В C # как я могу проверить, пуста ли очередь?

Я хочу перебрать элементы очереди, и мне нужно знать, когда остановиться.Как мне это сделать?

Ответы [ 6 ]

41 голосов
/ 01 ноября 2011

Предполагая, что вы имеете в виду 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...
}
20 голосов
/ 03 апреля 2013

Я бы предложил использовать метод Any (), так как он не будет подсчитывать всю очередь, что будет лучше с точки зрения производительности.

Queue myQueue = new Queue();
    if(myQueue.Any()){
      //queue not empty
    }
8 голосов
/ 01 ноября 2011

Если вы имели в виду System.Collections.Generic.Queue<T>

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

должен сделать трюк.

3 голосов
/ 01 ноября 2011
    Queue test = new Queue();
    if(test.Count > 0){
      //queue not empty
    }
2 голосов
/ 01 ноября 2011

Существует метод расширения .Count (), который доступен, потому что Queue реализует IEnumerable.

Вы также можете выполнить _queue.Any (), чтобы посмотреть, есть ли в нем какие-либо элементы.

1 голос
/ 01 ноября 2011

Вы можете проверить, равно ли его свойство Count 0.

...