Учитывая следующий код:
class Book {
public int ID { get; set; }
public string Name { get; set; }
public ICollection<Review> Reviews { get; set; }
}
class Review {
public int ID { get; set; }
public int? Overall { get; set; }
public string Comment { get; set; }
}
И при условии, что у меня есть список каждой книги в базе данных:
var books; // List<Book>
Я хотел бы показать пользователю книги, заказанныесредний обзор.В идеале, список книг должен иметь самый высокий средний обзор сверху и сортироваться по убыванию.Учитывая, что у меня общая оценка в «Обзоре» как нулевое целое число, некоторые книги не будут иметь рецензий, не говоря уже об общем балле.У меня проблемы с сортировкой этих данных, я пробовал, казалось бы, каждую комбинацию:
books.OrderByDescending(b => b.Reviews.Average(a => a.Overall));
Можно ли отсортировать мой список без создания второго списка, чтобы получить что-то вроде:
- Книга A (4.5 / 5)
- Книга B (4.3 / 5)
- Книга C (3.9 / 5)
- Книга D (3.5 / 5)
- Книга E (- / 5)
- Книга F (- / 5)
Заранее спасибо.