繁体   English   中英

如何将此语句从 (LINQ To Object) Criteria 转换为 Lambda 表达式?

[英]How to convert this statement from (LINQ To Object) Criteria To Lambda Expression?

我对LinqLinq 只是想知道如何将这个标准表达为 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})

暂无
暂无

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

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