web-dev-qa-db-fra.com

Comment puis-je vérifier si une file d'attente est vide?

En C #, comment puis-je vérifier si une file d'attente est vide?

Je veux parcourir les éléments de la file d'attente et j'ai besoin de savoir quand m'arrêter. Comment puis-je accomplir cela?

34
MoShe

En supposant que vous voulez dire Queue<T> vous pourriez utiliser simplement:

if (queue.Count != 0)

Mais pourquoi s'embêter? Itérez simplement dessus de toute façon, et s'il est vide, vous n'entrerez jamais dans le corps:

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

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

Je suggérerais d'utiliser la méthode Any (), car cela ne fera pas de décompte sur toute la file d'attente, ce qui sera meilleur en termes de performances.

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

En supposant que vous vouliez dire System.Collections.Generic.Queue<T>

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

devrait faire l'affaire.

8
vcsjones
    Queue test = new Queue();
    if(test.Count > 0){
      //queue not empty
    }
3
LMW-HH

Il existe une méthode d'extension .Count () qui est disponible car Queue implémente IEnumerable.

Vous pouvez également faire _queue.Any () pour voir s'il contient des éléments.

2
Joe

Vous pouvez vérifier si sa propriété Count est égale à 0.

1
muddybruin