Resumo : neste tutorial, você aprenderá como usar a classe C# Queue<T> para gerenciar uma coleção de objetos com base na ordem FIFO (primeiro a entrar, primeiro a sair).
Introdução à classe C# Queue<T>
Imagine que você está organizando uma conferência de tecnologia. Nesta conferência, os participantes precisam fazer check-in no balcão de inscrições. Para tornar o processo de check-in mais tranquilo e eficiente, você decide implementar uma fila de check-in.
À medida que os participantes chegam, eles entram na fila, formando uma fila. A primeira pessoa a chegar fica na frente da fila e a última a chegar fica atrás.
O pessoal da mesa de registro processa os participantes na ordem primeiro a entrar, primeiro a sair (FIFO). Eles começam com a pessoa que está no início da fila, verificam sua identificação e fornecem seus crachás de conferência.
À medida que cada pessoa faz o check-in e recebe seu crachá, ela passa para o início da fila e sai da fila. A próxima pessoa na fila passa para a frente e prossegue com o processo de check-in.
Isso continua até que todos os participantes tenham feito check-in e a fila fique vazia.
A classe C# Queue<T>
funciona da mesma forma que a fila de participantes. Possui dois métodos principais:
Enqueue()
– adiciona um objeto ao final da fila.Dequeue()
– remove e retorna um objeto no início da fila.
A Queue<T>
classe também possui a Count
propriedade que retorna o número de elementos da fila.
Exemplo de classe C# Queue<T>
O exemplo a seguir ilustra como usar a Queue<T>
classe C# para gerenciar uma fila de participantes:
using static System.Console;
var attendees = new List<string>{
"John",
"Jane",
"Bob",
"Alice"
};
var queue = new Queue<string>();
foreach (var attendee in attendees)
{
queue.Enqueue(attendee);
WriteLine($"{attendee} has arrived.");
}
WriteLine($"There are {queue.Count} attendees in the queue");
while(queue.Count > 0)
{
var attendee = queue.Dequeue();
WriteLine($"Checking in {attendee} ...");
}
WriteLine($"There are {queue.Count} attendees in the queue");
Linguagem de código: C# ( cs )
Saída:
John has arrived.
Jane has arrived.
Bob has arrived.
Alice has arrived.
There are 4 attendees in the queue
Checking in John ...
Checking in Jane ...
Checking in Bob ...
Checking in Alice ...
There are 0 attendees in the queue
Linguagem de código: texto simples ( texto simples )
Como funciona.
Primeiro, crie uma lista de quatro participantes:
var attendees = new List<string>{
"John",
"Jane",
"Bob",
"Alice"
};
Linguagem de código: C# ( cs )
Segundo, crie uma fila de strings para gerenciar os participantes:
var queue = new Queue<string>();
Linguagem de código: C# ( cs )
Terceiro, itere a attendees
lista e enfileire cada uma delas usando o Enqueue()
método:
foreach (var attendee in attendees)
{
queue.Enqueue(attendee);
WriteLine($"{attendee} has arrived.");
}
Linguagem de código: C# ( cs )
Quarto, obtenha o número de participantes que usam a Count
propriedade e exiba-o no console:
WriteLine($"There are {queue.Count} attendees in the queue");
Linguagem de código: C# ( cs )
Quinto, remova cada participante até que a fila esteja vazia usando o Dequeue()
método:
while(queue.Count > 0)
{
var attendee = queue.Dequeue();
WriteLine($"Checking in {attendee} ...");
}
Linguagem de código: C# ( cs )
Por fim, mostre o número de participantes na fila para o console:
WriteLine($"There are {queue.Count} attendees in the queue");
Linguagem de código: C# ( cs )
Resumo
- Use
Queue<T>
a classe C# para gerenciar uma coleção de objetos na ordem FIFO (primeiro a entrar, primeiro a sair).