Linby中的Groupby和where子句

Paw*_*wan 1 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();
Run Code Online (Sandbox Code Playgroud)

我不能一起使用group by,它一直在给错误.

我的查询应该

  1. 选择所有值.
  2. 通过where子句(pathnum)过滤它.
  3. Groupby the road名称
  4. 最后得到最小值.

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

谢谢,Pawan

tva*_*son 5

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

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) } );
Run Code Online (Sandbox Code Playgroud)