Stack.ToArray() имеет странный порядок элементовC#

Место общения программистов C#
Ответить
Anonymous
 Stack.ToArray() имеет странный порядок элементов

Сообщение Anonymous »

Я создал простое приложение ASP, в котором запрос PUT помещает новый элемент в стек.
Текущее состояние стека сохраняется в файле cookie в виде строки.
Извлечение значения стека из файла cookie:< /p>

Код: Выделить всё

static Stack getStack(HttpContext context) {
var stack = new Stack();
var stackInputs = context.Session.GetString("stack") == "" ? [] : context.Session.GetString("stack")!.Split(", ");

foreach (var item in stackInputs) {
stack.Push(int.Parse(item));
}

return stack;
}
Сохранение значения стека в файл cookie:

Код: Выделить всё

var stack = getStack(context);
stack.Push(json!.ADD);
context.Session.SetString("stack", string.Join(", ", stack.ToArray().Reverse()));
Ожидаемый результат: все в правильном порядке. Я напечатал значение стека с помощью оператора foreach.
Первый PUT:
1
Второй PUT:
2
1
Третий ПУТ:
3
2
1
А вот что «интересного» происходит если я удалю метод Reverse() в string.Join()?
Первый PUT:
1
Второй PUT:
2
1
Третий PUT:
3
1
2
Почему у него такой странный порядок элементов?
Я пытался найти какую-либо информацию об этом, но не нашел ничего полезного.

Подробнее здесь: https://stackoverflow.com/questions/790 ... f-elements
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»