#c#-4.0
#c #-4.0
Вопрос:
Я хочу сохранить порядок списка после сортировки. Например, пользователь вводит 2, 4, 7, 1, 0 для добавления в список. Как я могу поддерживать этот порядок после использования метода статической сортировки в списке? Я попытался использовать метод пузырьковой сортировки и скопировать исходный список в другую переменную списка, но после передачи списка в метод сортировки ниже он сортирует исходный список, даже если он был скопирован в другую переменную списка.
Есть ли что-нибудь вокруг этого?
private List<int> sortedList(List<int> sortedGrads)
{
for (int i = 0; i < sortedGrads.Count - 1; i )
{
for (int j = 0; j < sortedGrads.Count - 1 - i; j )
{
if (sortedGrads[j] > sortedGrads[j 1])
{
int temp = sortedGrads[j];
sortedGrads[j] = sortedGrads[j 1];
sortedGrads[j 1] = temp;
}
}
}
return sortedGrads;
}
Комментарии:
1. Не изменяйте вводимый вами параметр. Создайте новый пустой список внутри вашего метода. Поместите отсортированные результаты в новый список и верните новый список. Однако вы можете использовать linq Orderby, и это будет сделано за вас.
Ответ №1:
Чтобы получить отсортированный список, используйте LINQ и сохраните результат в другой переменной и сохраните исходный список таким, какой он есть.
private List<int> sortedList(List<int> sortedGrads)
{
List<int> sortedElements = sortedGrads.OrderBy(x => x).ToList();
//use any one from below
return sortedGrads; //returns the original list
return sortedElements; //returns the sorted list
}