如何将语句从(LINQ到对象)标准转换为Lambda表达式
本文关键字:标准 转换 表达式 Lambda 对象 语句 LINQ | 更新日期: 2023-09-27 18:04:49
我是Linq
的新手。只是想知道如何将这个标准表示为Lambda表达式?
var query = from person in personList
from toy in person.Toys
from animal in person.Animal
where animal.Name == "Cat"
select new
{
person.Id,
toy
};
我已经试过了:
var newlist = personList.Select(p => new { id = p.Id, toys = p.Toys });
但是我不知道把where子句放在哪里。由于
大致相当于:
query = personList.SelectMany(p => p.Animal.Where(a => a.Name == "Cat")
.SelectMany(a => p.Toys.Select(t => new
{
p.Id,
toy = t
})));
如果你有LinqPad,你可以点击λ
选项卡,查看你的语句的等效lambda语法
之类的personList.Where(p => p.Animal.Any(a => a.Name == "Cat")).SelectMany(p => p.Toys, (p1,t) => new { p1.Id, t})