Fila C#

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 Countpropriedade 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 queueLinguagem 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 attendeeslista 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 Countpropriedade 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).

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *