.NET Framework Empiler


Exemple

Il existe une collection dans .Net utilisée pour gérer les valeurs dans une Stack qui utilise le concept LIFO (last-in first-out) . Les bases des piles sont la méthode Push(T item) qui est utilisée pour ajouter des éléments dans la pile et Pop() qui est utilisé pour obtenir le dernier élément ajouté et le supprimer de la pile. La version générique peut être utilisée comme le code suivant pour une file d'attente de chaînes.

Tout d'abord, ajoutez l'espace de noms:

using System.Collections.Generic;

et l'utiliser:

Stack<string> stack = new Stack<string>();
stack.Push("John");
stack.Push("Paul");
stack.Push("George");
stack.Push("Ringo");

string value;
value = stack.Pop(); // return Ringo
value = stack.Pop(); // return George
value = stack.Pop(); // return Paul
value = stack.Pop(); // return John

Il existe une version non générique du type, qui fonctionne avec des objets.

L'espace de nom est:

using System.Collections;

Et un exemple de code de pile non générique:

Stack stack = new Stack();
stack.Push("Hello World"); // string
stack.Push(5); // int
stack.Push(1d); // double
stack.Push(true); // bool
stack.Push(new Product()); // Product object

object value;
value = stack.Pop(); // return Product (Product type)
value = stack.Pop(); // return true (bool)
value = stack.Pop(); // return 1d (double)
value = stack.Pop(); // return 5 (int)
value = stack.Pop(); // return Hello World (string)

Il existe également une méthode appelée Peek () qui renvoie le dernier élément ajouté, mais sans le retirer de la Stack .

Stack<int> stack = new Stack<int>();
stack.Push(10);
stack.Push(20);

var lastValueAdded = stack.Peek(); // 20

Il est possible d'itérer sur les éléments de la pile et il respectera l'ordre de la pile (LIFO).

Stack<int> stack = new Stack<int>();
stack.Push(10);
stack.Push(20);
stack.Push(30);
stack.Push(40);
stack.Push(50);

foreach (int element in stack)
{
   Console.WriteLine(element);
}

La sortie (sans suppression):

50
40
30
20
10