带有GROUPBY子句的Linq查询

带有GROUPBY子句的Linq查询,linq,Linq,“我的表”有以下列:- LevelId、LevelName、ScenarioId、TeamId 当按teamId分组时,我想选择与最小LevelId对应的LevelName,因此,您想: 按团队ID分组 在每个组中,按级别ID排序 取第一个结果的级别名称 这听起来像: var query = table.GroupBy(x => x.TeamId) .Select(g => g.OrderBy(x => x.LevelId).First()

“我的表”有以下列:-

LevelId、LevelName、ScenarioId、TeamId

当按teamId分组时,我想选择与最小LevelId对应的LevelName,因此,您想:

  • 按团队ID分组
  • 在每个组中,按级别ID排序
  • 取第一个结果的级别名称
这听起来像:

var query = table.GroupBy(x => x.TeamId)
                 .Select(g => g.OrderBy(x => x.LevelId).First().Name);
但不要只是接受这个查询并将其包含在代码中——确保您理解它,以便下次有类似的事情要做时,您可以提出自己的解决方案

如果这是在LINQ to Objects中,您可能会发现它的
MinBy
方法非常有用:

var query = table.GroupBy(x => x.TeamId)
                 .Select(g => g.MinBy(x => x.LevelId).Name);

这避免了为了找到具有最低级别ID的条目而对整个组进行排序。

StackOverflow不是一种代码编写服务。请阅读并显示。我尝试过以下查询:-@user2044161:请用您尝试过的内容更新您的原始问题。我尝试过:-UnitOfWork.Levels.Entities.Where(s=>s.Scenario\u Id==10.GroupBy(t=>t.Team\u Id)。选择(g=>g.Min(t=>t.Level\u Id)).Distinct().ToList();在上面的查询中,我想找到对应于所选的levelNamelevelIds@user2044161当前位置阅读注释中的代码非常困难,而且您发布的代码甚至没有任何意义(
10.GroupBy
?)我已经回答了您提出的问题-在理解它之后,您是否尝试过我的解决方案?