Quando si utilizza il metodo di estensione .ToList()
su un Stack<T>
, il risultato è lo stesso di scoppiare ogni elemento e aggiungerlo a un nuovo elenco (al contrario di ciò che è stato premuto)?stack.ToList() in .NET - ordine degli elementi?
Se è così, è perché sta davvero iterando su ogni elemento, o memorizza gli elementi al contrario internamente e fa scorrere l'array in un nuovo List<T>
?
Perché è sicuro assumerlo? Non sono stato in grado di trovare nulla nella documentazione che indica in quale ordine l'Enumeratore per 'Stack' itera, ma forse non ho avuto un bell'aspetto ... –
Non lo dice a titolo definitivo (almeno non al momento), ma l'esempio con [la documentazione per 'Stack.GetEnumerator'] (https://msdn.microsoft.com/en-us/library/yfw8w9at%28v=vs.100%29.aspx?f= 255 e MSPPError = -2147217396) mostra un ordine last-to-first, e le operazioni di inversione dello stack nell'esempio non funzionerebbero se questo ordine non fosse usato (oops, come Jon Skeet ha detto nella sua risposta). – dlf