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

发布于 2024-11-28 02:58:36 字数 559 浏览 0 评论 0原文

我对 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 子句放在哪里。谢谢

I am quite new to Linq. Just wondering how can I express this criteria to Lambda expression?

        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
                    };

I have tried this :

var newlist = personList.Select(p => new { id = p.Id, toys = p.Toys });

But I have no idea where to put the where clause. Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

终陌 2024-12-05 02:58:36

这大致相当于:

query = personList.SelectMany(p => p.Animal.Where(a => a.Name == "Cat")
                  .SelectMany(a => p.Toys.Select(t => new
                  {
                      p.Id,
                      toy = t
                  })));

如果您有 LinqPad,您可以单击 λ选项卡并查看语句的等效 lambda 语法。

This is roughly equivalent:

query = personList.SelectMany(p => p.Animal.Where(a => a.Name == "Cat")
                  .SelectMany(a => p.Toys.Select(t => new
                  {
                      p.Id,
                      toy = t
                  })));

If you've got LinqPad you can click on the λ tab and see the equivalent lambda syntax for your statements.

类似的东西
personList.Where(p => p.Animal.Any(a => a.Name == "Cat")).SelectMany(p => p.Toys, (p1,t) =>;新的{p1.Id,t})

something like
personList.Where(p => p.Animal.Any(a => a.Name == "Cat")).SelectMany(p => p.Toys, (p1,t) => new { p1.Id, t})

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文