Как можно создавать анонимные типы с помощью LINQ с синтаксисом лямбда?

У меня есть запрос LINQ, который использует синтаксис лямбда:

var query =
    books
        .Where(book => book.Length > 10)
        .OrderBy(book => book.Length)

Я хотел бы создать анонимный тип для хранения проекции, похожей на:

var query = from book in books
            where book.Length > 10
            orderby book
            select new { Book = book.ToUpper() };

Как "выбрать новый" в синтаксисе лямбда?

Спасибо,

Скотт

Ответ 1

Вот так:

var query =
    books
        .Where(book => book.Length > 10)
        .OrderBy(book => book.Length)
        .Select(book => new { Book = book.ToUpper() });