C# 如何使用LINQ和lambda语法创建匿名类型?

C# 如何使用LINQ和lambda语法创建匿名类型?,c#,linq,C#,Linq,我有一个使用lambda语法的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

我有一个使用lambda语法的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() };
如何在lambda语法中“选择新”

谢谢

斯科特像这样:

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

select new
不是构造,而是选择一个新对象。您可以选择所有内容,也可以在任何地方使用匿名new everywhere。