linq - Linq 中的 Groupby 和 where 子句

标签 linq c#-4.0

我是 Linq 的新手。我正在尝试编写一个 linq 查询来从一组记录中获取最小值。我需要在同一查询中使用 groupby、where 、 select 和 min 函数,但在使用 group by 子句时遇到问题。这是我写的查询

var data =newTrips.groupby (x => x.TripPath.TripPathLink.Link.Road.Name)
                  .Where(x => x.TripPath.PathNumber == pathnum)
                  .Select(x => x.TripPath.TripPathLink.Link.Speed).Min();

我无法使用分组依据,并且它在一起时总是给出错误。

我的查询应该

  1. 选择所有值。
  2. 通过 where 子句(路径号)对其进行过滤。
  3. 按道路名称分组
  4. 最终得到最小值。

有人可以告诉我我做错了什么以及如何达到预期的结果吗?

谢谢, 帕万

最佳答案

不知道数据之间的关系有点棘手,但我认为(无需尝试)这应该给你想要的——按名称计算的每条道路的最低速度。请注意,它将生成具有“名称”和“速度”属性的匿名对象的集合。

var data = newTrips.Where(x => x.TripPath.PathNumber == pathnum)
                   .Select(x => x.TripPath.TripPathLink.Link)
                   .GroupBy(x => x.Road.Name)
                   .Select(g => new { Name = g.Key, Speed = g.Min(l => l.Speed) } );

关于linq - Linq 中的 Groupby 和 where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4310024/

相关文章:

c# - 在 LINQ 中将字符串转换为 DateTime

c# - 无法在泛型委托(delegate)中推断出类型

c# - 使用 linq 列表中前 3 项的平均值

wpf - 将相同类型的 View 模型列表绑定(bind)到 Caliburn.Micro 中的选项卡控件

visual-studio-2010 - 调试器友好列表类

c# - 只读集合 IEnumerable

c# - 在 linq 中使用数据透视表

c# - .net 4.0和vs2010 beta2何时支持mysql

wpf - 如何设置项目以使用 TweetSharp

c# - LINQ 中 For 循环的等价物