LINQ如何在lambda表达式中选择多个属性?

Ton*_*ony 14 c# linq lambda anonymous-types

我们经常使用以下lambda表达式

MyList.Select(x => x.Id).ToList();
Run Code Online (Sandbox Code Playgroud)

使用lambda表达式可以获得多于1个属性吗?例如Id,Name来自MyList?

我知道我可以使用以下语法:

(from item in MyList
 select new { item.Id, item.Name }).ToList();
Run Code Online (Sandbox Code Playgroud)

我可以使用lambda表达式做同样的事情吗?

Ant*_*ram 40

MyList.Select(x => new { x.Id, x.Name }).ToList();
Run Code Online (Sandbox Code Playgroud)

  • @Tony,在这种情况下,`Select`返回一个匿名类型,就像查询表达式版本一样.如果你需要填充结果并在以后重用它或传递它,那么你应该继续在你的代码中定义一个具体的类型. (3认同)
  • @Tony,一旦定义了这个类型,你需要做的就是将select改为`Select(x => new YourNewType {x.Id,x.Name})` (2认同)