Resumo : neste tutorial, você aprenderá como usar C# Stack<T>
para armazenar elementos em uma coleção com base no princípio LIFO (último a entrar, primeiro a sair).
Introdução ao tipo C# Stack<T>
Suponha que você tenha uma pilha de livros em sua mesa. Ao adquirir um livro novo, você o coloca no topo da pilha. O livro principal é sempre aquele que você pode escolher facilmente para ler.
Quando você quiser ler um livro, você pega aquele que está no topo da pilha, revelando o próximo livro abaixo.
Nesta analogia, a pilha de livros representa uma estrutura de dados onde você adiciona e remove livros em uma ordem do tipo primeiro a entrar, último a sair (LIFO). O primeiro livro que você coloca na pilha é o último que você remove da pilha.
Em C#, Stack<T>
a classe funciona da mesma maneira que uma pilha de livros. O Stack<T>
tem dois métodos principais:
Push()
– coloca um item no topo da pilha.Pop()
– remove o item do topo da pilha.
O Stack<T>
também possui a Count
propriedade que retorna o número de elementos da pilha.
Como Stack<T>
é uma classe genérica, você armazena valores de qualquer tipo T
na pilha.
Exemplo de pilha C#<T>
O exemplo a seguir ilustra como usar a Stack<T>
classe para gerenciar uma pilha de livros:
using static System.Console;
var bookStack = new Stack<string>();
var titles = new List<string>{
"C# Tutorial",
"Mastering LINQ",
"A Complete Guide to EF Core"
};
// push
foreach (var title in titles)
{
WriteLine($"Push the book '{title}' onto the stack.");
bookStack.Push(title);
}
WriteLine($"The stack has {bookStack.Count} book(s).");
// pop
while (bookStack.Count > 0)
{
var title = bookStack.Pop();
WriteLine($"Pop the book '{title}' out of the stack.");
}
WriteLine($"The stack has {bookStack.Count} book(s).");
Linguagem de código: C# ( cs )
Saída:
Push the book 'C# Tutorial' onto the stack.
Push the book 'Mastering LINQ' onto the stack.
Push the book 'A Complete Guide to EF Core' onto the stack.
The stack has 3 book(s).
Pop the book 'A Complete Guide to EF Core' out of the stack.
Pop the book 'Mastering LINQ' out of the stack.
Pop the book 'C# Tutorial' out of the stack.
The stack has 0 book(s).
Linguagem de código: texto simples ( texto simples )
Como funciona.
Primeiro, crie uma nova pilha que armazene as strings que representam os títulos dos livros:
var bookStack = new Stack<string>();
Linguagem de código: C# ( cs )
Segundo, inicialize uma lista de títulos de livros:
var titles = new List<string>{
"C# Tutorial",
"Mastering LINQ",
"A Complete Guide to EF Core"
};
Linguagem de código: C# ( cs )
Terceiro, itere sobre os títulos dos livros e coloque cada um deles na pilha usando um loop e método foreachPush()
:
foreach (var title in titles)
{
WriteLine($"Push the book '{title}' onto the stack.");
bookStack.Push(title);
}
Linguagem de código: C# ( cs )
Quarto, verifique o tamanho da pilha usando a Count
propriedade:
WriteLine($"The stack has {bookStack.Count} book(s).");
Linguagem de código: C# ( cs )
Quinto, remova cada livro da pilha usando o Pop()
método até que a pilha esteja vazia:
while (bookStack.Count > 0)
{
var title = bookStack.Pop();
WriteLine($"Pop the book '{title}' out of the stack.");
}
Linguagem de código: C# ( cs )
Por fim, mostra o tamanho da pilha:
WriteLine($"The stack has {bookStack.Count} book(s).");
Linguagem de código: C# ( cs )
Resumo
- Use C#
Stack<T>
para gerenciar uma coleção de elementos na ordem LIFO (último a entrar, primeiro a sair). - Use
Push()
o método para colocar um elemento na pilha. - Use
Pop()
o método para retirar um elemento da pilha. - Use
Count
a propriedade para obter o número de elementos na pilha.