gpt4 book ai didi

c# - 有没有办法将两个 LINQ 查询合并为一个?

转载 作者:太空狗 更新时间:2023-10-30 01:08:40 27 4
gpt4 key购买 nike

我有一个名为 dbRecipes 的数组,其中包含分成几组的食谱列表。例如,晚餐 组可能有三文鱼馅、沙拉和土 bean 泥。甜点组将有一个巧克力融化的熔岩蛋糕。嗯。

我需要在分组列表中显示这些食谱,例如:

Group 1:
- Recipe 1
- Recipe 2
Group 2:
- Recipe 3

dbRecipes 中的每个项目都包含一个 Group 属性,其中包含有关其所在组的信息,以及一个 Recipe 属性,其中包含有关食谱。

我想使用 LINQ 查询来遍历整个事情,但我远不是 LINQ 专家,所以我发现的最好方法是查询所有不同的组,然后遍历每个组那些。这是我的代码:

var groups = (from g in dbRecipes orderby g.Group.GroupOrder select g.Group).Distinct();
foreach (var g in groups)
{
output.Write("{0}<br/>", g.GroupName);

var recipes = (from r in dbRecipes where r.Group == g orderby r.DisplayOrder select r.Recipe);
foreach(var r in recipes)
{
output.Write("---{0}<br/>", r.Title);
}
}

这似乎工作得很好,但是有没有一种方法可以更高效、更简洁或者不需要多次查询?谢谢!

最佳答案

var groups = 
from r in dbRecipes
orderby r.DisplayOrder
group r by r.Group into g
orderby g.Key.GroupOrder
select g;

foreach (var g in groups)
{
output.Write("{0}<br/>", g.Key.GroupName);

foreach(var r in g)
{
output.Write("---{0}<br/>", r.Recipe.Title);
}
}

关于c# - 有没有办法将两个 LINQ 查询合并为一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8831241/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com