@maksam07

Как сделать сортировку с параметрами?

Добрый день. Имеется консольное приложение, в нем прописано 2 вида сортировки в зависимости от настройки в ini файле. То есть по возрастанию или по убыванию, а делалось это так:
INode[] sortedNodes = nodes.OrderBy( x => x.CreationDate ).ToArray();
if ( data["SETTINGS"]["SORT"] == "DESC" )
	sortedNodes = nodes.OrderByDescending( x => x.CreationDate ).ToArray();

Вопрос к знатокам: как с помощью кейсов или новой функции сделать сортировку еще и по другому ключу? Не хочу прописывать много условий. Явно же делается как-то просто, только вот решение я найти так и не смог. Чтобы можно было сортировать не только по CreationDate, а еще и по ModificationDate(ну или любым другим)
  • Вопрос задан
  • 86 просмотров
Решения вопроса 1
EreminD
@EreminD
Кое-что умею
INode[] sortedNodes = nodes.OrderBy( x => x.CreationDate ).ThenBy(x => x.ModificationDate).ToArray();
if ( data["SETTINGS"]["SORT"] == "DESC" )
  sortedNodes = nodes.OrderByDescending( x => x.CreationDate ).ThenByDescending(x => x.ModificationDate).ToArray();


Может, даже так?
INode[] sortedNodes = (data["SETTINGS"]["SORT"] == "DESC"  ?  
nodes.OrderBy( x => x.CreationDate ).ThenBy(x => x.ModificationDate) :
nodes.OrderByDescending( x => x.CreationDate ).ThenByDescending(x => x.ModificationDate))
.ToArray();
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы