У меня есть система бронирования и страница с указанием заказов пользователя - прошлого и будущего.Упорядочить по дате в разных направлениях
Я хочу заказать заказы с будущими заказами сначала, заказанные со следующей сессией вверху (по возрастанию), а затем прошлые заказы, начиная с последней сессии (по убыванию).
настоящее время у меня это:
from sess in Sessions
orderby sess.SessionDate < DateTime.Now.Date, sess.SessionDate
select sess
Но что дает оба набора в порядке Asc. Любой способ условно сортировать после предложения первого порядка?
Я также рассмотрел использование IQueryable<T>.Concat
. Это будет путь? Я предполагаю, что результаты в каком-то Союзе, но могу ли я гарантировать, что он сохранит порядок сортировки для обоих наборов?
например. Результаты: Sessions
2015-03-01 - some class
2015-03-15 - a different class
2015-04-10 - also a class
(the split between past and future sessions)
2014-12-22 - some tutorial
2014-11-15 - some sort of class
2014-10-08 - some other class
Ницца. Это отличный фрагмент кода. –
Можете ли вы подробнее рассказать о своем ответе. Я смотрю на него и до сих пор не знаю, «что только что произошло». Я просто знаю, что это выглядит потрясающе. – granadaCoder
@granadaCoder - первый «порядок от» будет оцениваться как «false» для будущих дат, поэтому они будут размещены до прошлых дат. Второй 'order by' просто упорядочивает ближайший к' DateTime.Now', но вам нужно поменять параметры на _border_, иначе вы начнете получать отрицательные числа – Aducci