C# – How to anonymous types be created using LINQ with lambda syntax

clinq

I have a LINQ query that uses lambda syntax:

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

I would like to create an anonymous type to store the projection, similar to:

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

How do I "select new" in lambda syntax ?

Thanks,

Scott

Best Answer

Like this:

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