我是 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();
我无法使用分组依据,并且它在一起时总是给出错误。
我的查询应该
- 选择所有值。
- 通过 where 子句(路径号)对其进行过滤。
- 按道路名称分组
- 最终得到最小值。
有人可以告诉我我做错了什么以及如何达到预期的结果吗?
谢谢, 帕万
最佳答案
不知道数据之间的关系有点棘手,但我认为(无需尝试)这应该给你想要的——按名称计算的每条道路的最低速度。请注意,它将生成具有“名称”和“速度”属性的匿名对象的集合。
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/