Podczas korzystania z metody rozszerzania .ToList()
na Stack<T>
, wynik jest taki sam jak pojawienie się każdego elementu i dodanie do nowej listy (odwrotnie do tego, co zostało pchnięte)?stack.ToList() w .NET - kolejność elementów?
Jeśli tak, to czy tak naprawdę jest to iteracja nad każdym elementem, czy też wewnętrznie przechowuje elementy w odwrotnej kolejności i wsuwa tablicę do nowego List<T>
?
Dlaczego można to bezpiecznie założyć? Nie udało mi się znaleźć niczego w dokumentacji, która stwierdza, w której kolejności Enumerator dla 'Stack' iteruje, ale może nie wyglądam wystarczająco dobrze ... –
Nie mówi tego wprost (przynajmniej nie w tej chwili), ale przykład z [dokumentacją dla 'Stack.GetEnumerator'] (https://msdn.microsoft.com/en-us/library/yfw8w9at%28v=vs.100%29.aspx?f= 255 i MSPPError = -2147217396) pokazuje ostatnią kolejność, a operacje odwrócenia stosu w tym przykładzie nie działałyby, gdyby ta kolejność nie była używana (oops, jak powiedział Jon Skeet w swojej odpowiedzi). – dlf