[英]LINQ How to select more than 1 property in a lambda expression?
我们经常使用以下lambda表达式
MyList.Select(x => x.Id).ToList();
使用lambda表达式可以获得多于1个属性吗? 例如来自MyList的Id
和Name
?
我知道我可以使用以下语法:
(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.