Упорядочено по какая дата комментария? первый? последний? Вы стараетесь:
orderby p.Comments.Max(x=>x.Created)
например.
Также - ваш Single
предполагает, что вы ожидаете ровно одну строку, и в этом случае нет особого смысла сортировать ее. Вы имеете в виду First()
?
Или вы имеете в виду, что хотите отсортировать Comments
? В этом случае сначала получите Post
;
Post post = ...
Теперь ... сортировка Comments
немного сложна из-за вашего IList<T>
- если вы не возражаете, что это немного неэффективно, это просто:
post.Comments = post.Comments.OrderBy(x=>x.Created).ToList();
Конечно, если Comments
было List<T>
, вы могли бы сделать:
post.Comments.Sort((x, y) => (x.Created.CompareTo(y.Created)));
Есть также трюки, которые вы можете сделать, чтобы создать метод расширения формы:
post.Comments.Sort(x=>x.Created);
* * +1032 т.е.
public static void Sort<TSource, TKey>(
this List<TSource> source,
Func<TSource, TKey> selector)
{
var comparer = Comparer<TKey>.Default;
source.Sort((x, y) => comparer.Compare(selector(x), selector(y)));
}