C # list.Orderby по убыванию

Я хочу получить список, отсортированный по "Product.Name" в порядке убывания.

Подобно функции ниже, которая сортирует список в порядке возрастания, только в обратном порядке, возможно ли это?

var newList = list.OrderBy(x => x.Product.Name).ToList();

person PFranchise    schedule 13.10.2010    source источник
comment
Может быть проблема в том, что вы написали toList вместо ToList?   -  person Mark Byers    schedule 13.10.2010
comment
Я думаю, он имел в виду, что он не принимает ключевое слово descending, потому что он не начинал свое выражение с from x in list...   -  person StriplingWarrior    schedule 13.10.2010
comment
Извините, я не копировал точно этот код, а набрал по памяти. Мой реальный код работает, но просто возвращает список, отсортированный в порядке возрастания.   -  person PFranchise    schedule 13.10.2010


Ответы (6)


Конечно:

var newList = list.OrderByDescending(x => x.Product.Name).ToList();

Документ: OrderByDescending (IEnumerable, Func ).

В ответ на ваш комментарий:

var newList = list.OrderByDescending(x => x.Product.Name)
                  .ThenBy(x => x.Product.Price)
                  .ToList();
person StriplingWarrior    schedule 13.10.2010
comment
Итак, ваша правка будет отсортирована по имени (от z- ›a), а затем по цене (низкая -› высокая)? - person PFranchise; 13.10.2010
comment
Да это верно. Вызовы OrderBy или ThenBy всегда по возрастанию. Методы OrderByDescending и ThenByDescending - это то, что вы использовали бы для спуска. - person StriplingWarrior; 13.10.2010

да. Используйте OrderByDescending вместо OrderBy.

person Mark Byers    schedule 13.10.2010

list.OrderByDescending();

работает на меня.

person Tablet    schedule 13.10.2010
comment
Это ничего не дало, не выполнив list = list.OrderByDescending (). ToList (); - person Almo; 04.08.2014

var newList = list.OrderBy(x => x.Product.Name).Reverse()

Это должно сработать.

person Beedjees    schedule 10.10.2014

посмотри этот фрагмент кода из моего проекта

Я пытаюсь переупорядочить список на основе свойства внутри моей модели,

 allEmployees = new List<Employee>(allEmployees.OrderByDescending(employee => employee.Name));

но я столкнулся с проблемой, когда small and capital letters exist, поэтому для ее решения я использовал средство сравнения строк.

allEmployees.OrderBy(employee => employee.Name,StringComparer.CurrentCultureIgnoreCase)
person Basheer AL-MOMANI    schedule 25.07.2016

list = new List<ProcedureTime>(); sortedList = list.OrderByDescending(ProcedureTime=> ProcedureTime.EndTime).ToList();

Что работает для меня, чтобы показать время, отсортированное в порядке убывания.

person Archana    schedule 20.03.2013