En C#, ¿cómo puedo verificar si una cola está vacía?¿Cómo puedo verificar si una cola está vacía?
Quiero iterar a través de los elementos de la cola, y necesito saber cuándo parar. ¿Cómo puedo lograr esto?
En C#, ¿cómo puedo verificar si una cola está vacía?¿Cómo puedo verificar si una cola está vacía?
Quiero iterar a través de los elementos de la cola, y necesito saber cuándo parar. ¿Cómo puedo lograr esto?
Suponiendo que quiere decir que Queue<T>
podría sólo tiene que utilizar:
if (queue.Count != 0)
Pero ¿por qué preocuparse? Sólo iterar sobre todos modos, y si está vacío que no se consigue en el cuerpo:
Queue<string> queue = new Queue<string>();
// It's fine to use foreach...
foreach (string x in queue)
{
// We just won't get in here...
}
Tenga en cuenta que el enfoque foreach no funciona si necesita agregar elementos a la cola mientras procesa la cola (por ejemplo, si está implementando el algoritmo BFS) porque entonces el enumerador sería invalidado. Usar la propiedad Count es la forma correcta para este escenario. – DSO
@DSO ¿no invalidaría también el enumerador si está eliminando elementos de la cola? – Jakotheshadows
Entonces, ¿para qué sirve Cola si no quita los elementos de Dequeue? – titol
Suponiendo que quería decir System.Collections.Generic.Queue<T>
if(yourQueue.Count != 0) { /* Whatever */ }
debe hacer el truco.
Puede comprobar si su propiedad Count es igual a 0.
Existe un método de extensión .Count() que está disponible porque Queue implementa IEnumerable.
También puede hacer _queue.Any() para ver si hay elementos en él.
El segundo es malo, el primero es horrible. Use la propiedad queue.Count. –
Queue test = new Queue();
if(test.Count > 0){
//queue not empty
}
si utiliza cola (System.Collections.Generic.Queue) entonces
Queue<String> QST;
...
int numberOfElement = QST.Count();
Usar Qst.Count - O (1) - no Qst.Count() - O (n). –
se recomienda usar el método Cualquier(), ya que esto no va a hacer un recuento de toda la cola, que será mejor en términos de rendimiento.
Queue myQueue = new Queue();
if(myQueue.Any()){
//queue not empty
}
@GregoryBad: 'myQueue.Count' no hará un recuento de toda la cola. El tamaño se almacena en una variable privada en la clase Queue que la propiedad Count solo devuelve ver [Queue
@Rutix, gracias por esto. Bueno saber. – GregoryBrad
@Rutix Incluso el método Enumerable.Count() está optimizado para comprobar si se puede convertir a ICollection y devolver la propiedad .Count sin enumerar. –
qué cola utilizar? por favor publique la definición de cola. –
¿Qué es Queue? ¿Qué contiene? –
simplemente llame a la función que le dice si está vacía o no. (una respuesta sin código para una pregunta sin código) – musefan