繁体   English   中英

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

[英]LINQ How to select more than 1 property in a lambda expression?

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

MyList.Select(x => x.Id).ToList();

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

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

(from item in MyList
 select new { item.Id, item.Name }).ToList();

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

MyList.Select(x => new { x.Id, x.Name }).ToList();

您感兴趣的功能是C#3的匿名类型

您可以使用以下命令创建匿名类型的新实例:

var v = new { Amount = 108, Message = "Hello", this.Text };

当然这也是一个lamda:

SomeThing.Select( () => new {X=1,Y=2} )

代码中的任何位置。 它还会获取属性名称,在这种情况下,您不需要显式指定它(我的示例中的匿名类型的第三个成员自动命名为Text

遗憾的是,您不能将它们用作函数的非泛型返回类型。

var sample = dbcontext.MyList
                      .Select(m => new Mylist{ sampleid=m.sampleid,item=m.item })
                      .ToList();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM