Close Menu
Código Simples .NETCódigo Simples .NET
    Facebook X (Twitter) Instagram
    Trending
    • NewSQL em 2025: O Estado Atual, Tendências e o Futuro dos Bancos de Dados Relacionais Escaláveis
    • 12 Regras Essenciais para Reduzir a Latência de Aplicações
    • Cache Hit Ratio: Como uma Simples Métrica Pode Revolucionar sua Arquitetura
    • Como a Uber calcula o tempo estimado de chegada
    • 30 APIs Gratuitas para desenvolvedores
    • Por que escalar escrita é tão mais difícil do que escalar leitura?
    • MongoDB Analyzer para .NET: Visualize e otimize suas consultas de forma simples
    • Cardinalidade: O Conceito que Transforma o Desempenho de Bancos de Dados SQL e NoSQL
    Facebook X (Twitter) Instagram
    Código Simples .NETCódigo Simples .NET
    Código Simples .NETCódigo Simples .NET
    Home»Asp.net»C#»Filas com C# – Queue

    Filas com C# – Queue

    Jhonathan SoaresBy Jhonathan Soares10 de junho de 20192 Mins Read C#
    Share
    Facebook Twitter LinkedIn WhatsApp Copy Link

    Pilhas e filas são úteis quando você precisar de armazenamento temporário para obter informações; ou seja, quando você talvez queira descartar um elemento após recuperar seu valor. Utilizando a classe Queue você poderá acessar as informações na mesma ordem em que ele é armazenado na coleção.

    Uma Fila representa uma coleção de objetos FIFO (first-in-first-out, primeiro a entrar, primeiro a sair). A classe Queue<T> no namespace System.Collection.Generic representa uma fila em C #, onde T especifica o tipo de elementos na fila. Neste artigo e exemplos de código, eu explico o construtor, propriedades e métodos da classe Queue e como usar seus vários métodos utilizando C#.

    Veja os exemplos:

      
       Console.WriteLine("Example 1 - Queue.Count Property");
       string[] courses = { "MCA", "MBA", "BCA", "BBA", "BTech", "MTech" };
       Queue<string> queue1 = new Queue<string>();
       queue1 = new Queue<string>(courses);
       Queue<string> queue2 = new Queue<string>(courses);
       Queue<string> queue3 = new Queue<string>(4);
       Console.WriteLine("Number of elements in queue 1:" + queue1.Count());
       Console.WriteLine("Number of elements in queue 2:" + queue2.Count());
       Console.WriteLine("Number of elements in queue 3:" + queue3.Count());
       Console.WriteLine();
    
    
       Console.WriteLine("Example 2 - Queue.Enqueue Method");
       Queue<string> queue4 = new Queue<string>();
       queue4.Enqueue("MCA");
       queue4.Enqueue("MBA");
       queue4.Enqueue("BCA");
       queue4.Enqueue("BBA");
       Console.WriteLine("The elements in the queue are:");
       foreach (string s in queue4)
       {
           Console.WriteLine(s);
       }
       Console.WriteLine();
    
    
       Console.WriteLine("Example 3 - Queue.Dequeue method");
       Queue<string> queue5 = new Queue<string>();
       queue5.Enqueue("MCA");
       queue5.Enqueue("MBA");
       queue5.Enqueue("BCA");
       queue5.Enqueue("BBA");
       Console.WriteLine("The elements in the queue are:");
       foreach (string s in queue5)
       {
           Console.WriteLine(s);
       }
       queue5.Dequeue(); //Removes the first element that enter in the queue here the first element is MCA  
       queue5.Dequeue(); //Removes MBA  
       Console.WriteLine("After removal the elements in the queue are:");
       foreach (string s in queue5)
       {
           Console.WriteLine(s);
       }
       Console.WriteLine();
    
       Console.WriteLine("Example 4 - Queue.Contain method");
       Queue<string> queue6 = new Queue<string>();
       queue6.Enqueue("MCA");
       queue6.Enqueue("MBA");
       queue6.Enqueue("BCA");
       queue6.Enqueue("BBA");
       Console.WriteLine("The elements in the queue are:");
       foreach (string s in queue6)
       {
           Console.WriteLine(s);
       }
       Console.WriteLine("The element MCA is contain in the queue:" + queue6.Contains("MCA"));
       Console.WriteLine("The element BCA is contain in the queue:" + queue6.Contains("BCA"));
       Console.WriteLine("The element MTech is contain in the queue:" + queue6.Contains("MTech"));
       Console.WriteLine();
    
    
       Console.WriteLine("Example 5 - Queue.Clear method");
       Queue<string> queue7 = new Queue<string>();
       queue7.Enqueue("MCA");
       queue7.Enqueue("MBA");
       queue7.Enqueue("BCA");
       queue7.Enqueue("BBA");
       Console.WriteLine("The elements in the queue are:" + queue7.Count());
       queue7.Clear();
       Console.WriteLine("The elements in the queue are after the clear method:" + queue7.Count());
       Console.WriteLine();
    
    
       Console.WriteLine("Example 6 - Queue.Peek method");
       Queue<string> queue8 = new Queue<string>();
       queue8.Enqueue("MCA");
       queue8.Enqueue("MBA");
       queue8.Enqueue("BCA");
       queue8.Enqueue("BBA");
       Console.WriteLine("Peek the first item from the queue is:" + queue8.Peek());
       queue8.Dequeue();
       Console.WriteLine("Peek the next item from the queue is:" + queue8.Peek());
       Console.WriteLine();
    
    
    
       Console.WriteLine("Example 7 - Queue.ToArray method");
       Queue<string> queue9 = new Queue<string>();
       queue9.Enqueue("MCA");
       queue9.Enqueue("MBA");
       queue9.Enqueue("BCA");
       queue9.Enqueue("BBA");
       Console.WriteLine("The queue elements are:");
       foreach (string s in queue9)
       {
           Console.WriteLine(s);
       }
       
       Queue<string> queue10 = new Queue<string>(queue9.ToArray());
       Console.WriteLine("Contents of the copy");
       
       foreach (string n in queue10)
       {
           Console.WriteLine(n);
       }
       Console.WriteLine();
       
       
    

    Três operações principais podem ser executadas em um Queue e seus elementos:

    Enqueue Adiciona um elemento ao final do Queue.

    Dequeue Remove o elemento mais antigo do início do Queue.

    Peek Retorna o elemento mais antigo que está no início do Queue , mas não o remove do Queue.

    A capacidade de um Queue é o número de elementos a Queue pode conter. Como os elementos são adicionados a um Queue, a capacidade é aumentada automaticamente conforme necessário por meio de realocação. A capacidade pode ser diminuída chamando TrimToSize.

    Como sabemos, Queue é FIFO, caso você queira utilizar LIFO, utilize a propriedade Stack se você precisar acessar as informações na ordem inversa da Queue.

    O código fonte se encontra no meu github

    Um grande abraço!

    Referências:
    https://docs.microsoft.com/pt-br/dotnet/api/system.collections.queue?view=netframework-4.8

    https://www.c-sharpcorner.com/members/richa-garg7

    Share. Facebook Twitter LinkedIn Telegram WhatsApp Copy Link
    Jhonathan Soares
    • Website
    • Facebook
    • X (Twitter)
    • LinkedIn

    Criador do blog Código Simples e com mais 15 anos de experiência em TI, com títulos de MVP Microsoft na área de Visual Studio Development, Neo4j Top 50 Certificate, Scrum Master e MongoDB Evangelist.

    Posts Relacionados

    O que é a Ecma e qual é sua relação com C#?

    C# Post do Leitor 29 de julho de 20247 Mins Read

    UUID vs ULID: comparação e exemplos em C#

    C# 19 de junho de 20245 Mins Read

    Entendendo o ObjectId no MongoDB

    C# NoSql 25 de maio de 20246 Mins Read
    Newsletter

    Digite seu endereço de e-mail para receber notificações de novas publicações por e-mail.

    Junte-se a 25mil outros assinantes
    Posts recentes
    • NewSQL em 2025: O Estado Atual, Tendências e o Futuro dos Bancos de Dados Relacionais Escaláveis
    • 12 Regras Essenciais para Reduzir a Latência de Aplicações
    • Cache Hit Ratio: Como uma Simples Métrica Pode Revolucionar sua Arquitetura
    • Como a Uber calcula o tempo estimado de chegada
    • 30 APIs Gratuitas para desenvolvedores
    Categorias
    • Arquitetura (14)
      • Testes (2)
    • Asp.net (120)
      • C# (89)
      • Mvc (13)
    • Banco de dados (90)
      • NoSql (58)
      • Sql (38)
    • Boas práticas (29)
      • Gestão & Produtividade (1)
      • Metodologias Ágeis (6)
    • Cursos (52)
    • Dicas (105)
    • Front-End (92)
    • IA (1)
    • Linux (6)
    • NodeJS (4)
    • Post do Leitor (9)
    • Python (5)
    • Seo (12)
    • Tecnologia (30)
      • ITIL (1)
      • Padrões de Projeto (4)
    • Testes (2)

    VEJA TAMBÉM

    Cursos
    12 de fevereiro de 20166 Mins Read

    1000 livros gratuitos sobre programação!

    Olha que dica bacana! A pagina só com livros sobre programação é mantida no GitHub…

    30 APIs Gratuitas para desenvolvedores

    Facebook X (Twitter) Instagram LinkedIn

    Type above and press Enter to search. Press Esc to cancel.

    Vá para versão mobile