agent_kruger Ответов: 2

Несортированный массив в c# win. форма


Я застрял в той части, где Сортировка группы целых чисел по их длине и отмена сортировки он вернулся.

Пример
Ниже приведен мой целочисленный массив, который я хочу сериализовать
int[] i = new int[] { 20,5,90,7,44,81 };

ВЫХОД
i = new int[] { 5,7,20,90,44,81 };

НЕСОРТИРОВКА
i = new int[] { 20,5,90,7,44,81 };

Пока что я не могу найти способ отменить сортировку списка обратно Любой фрагмент кода будет оценен по достоинству.


Заранее спасибо

Philippe Mori

Это си не представляется возможным. Как просто, как это. Вы должны помнить первоначальный заказ, чтобы иметь возможность восстановить его. Оба решения 1 и 2 являются хорошими решениями для вашей проблемы.

Сортировка не является обратимой. Несортировка не существует. Ну, в некоторых случаях вы можете получить исходный порядок из исходных данных, например, если данные поступают из базы данных, вы можете сделать исходный запрос снова, и вы получите исходный порядок, явно не запоминая порядок (при условии, что данные не изменяются в то же время).

2 Ответов

Рейтинг:
12

PIEBALDconsult

Цитата:
unsort


Не изменяйте массив - сделайте другой массив с индексами первого массива и изменить его-это своего рода связанный список таким образом.

int[] i = new int[] { 20,5,90,7,44,81 };

int[] j = new int[] { 1 , 3 , 0 , 2 , 4 , 5 };


agent_kruger

нет, сэр, я не могу сохранить его в другом объекте, и нет ли никакого способа разобрать список?

Philippe Mori

Вы не можете отменить сортировку массива без того, чтобы каким-то образом не запомнить исходный порядок. Сортировка не является обратимой операцией.

Рейтинг:
1

Karthik_Mahalingam

Попробовать это

int[] i = new int[] { 20, 5, 90, 7, 44, 81 };
           int[] unsortedarray = new int[i.Length];
           i.CopyTo(unsortedarray, 0);
           Array.Sort(i);  // sorted array  5,7,20,44,81,90
           i = unsortedarray; //un sorted array  20, 5, 90, 7, 44, 81


agent_kruger

нет, сэр, я не могу сохранить его в другом объекте, и нет ли никакого способа разобрать список?

Karthik_Mahalingam

поделитесь своим кодом..

agent_kruger

у меня нет кода отмены сортировки вот что я ищу

Karthik_Mahalingam

проверьте мое обновленное решение...

Philippe Mori

Вы не можете отменить сортировку массива без того, чтобы каким-то образом не запомнить исходный порядок. Сортировка не является обратимой операцией.