LINQ va-t-il itérer une pile dans l'ordre LIFO [dupliquer]
Les méthodes LINQ itéreront-elles le contenu d'une pile (et dans mon cas spécifique Stack
Une question simple, et je suppose que oui et oui, mais une si simple que la recherche a produit de grands volumes de réponses liées à LINQ et Stack dont aucun des innombrables résultats que j'ai consultés ne répondait spécifiquement à ce cas.
Réponses
Oui.
L'expérience suivante montre qu'elle suit l'ordre LIFO de la pile.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
public class DoesLinqIterateAStackInLifo
{
public static void Main()
{
var stack = new Stack<char>();
stack.Push('s');
stack.Push('e');
stack.Push('Y');
Console.WriteLine(stack.Aggregate(new StringBuilder(), (builder,letter) => builder.Append(letter)));
Console.WriteLine(string.Join("",stack.ToList()));
if(stack.Count==3)
{
Console.WriteLine("And it will not pop the stack");
}
}
}
Production:
Yes
Yes
And it will not pop the stack