c# - Linq GroupBy。返回数据子集的前一项

标签 c# sql linq group-by

我有一张航类价格数据表,我想返回每个目的地的前 1 个最便宜的航类。该表有以下基本字段:

FlightInfoID
AirportFrom
AirportTo
Price

我尝试了以下方法,但它没有返回我预期的结果,因为对于一个特定的目的地有多个项目,我只希望每个目的地有 1 个结果,所以如果我有 50 个目的地,我会返回 50 个项目。

lstBestFlightDealsForAllRoutes.OrderBy(p=> p.Price).GroupBy(x => x.AirportTo).First();

最佳答案

from f in lstBestFlightDealsForAllRoutes
group f by new { f.AirportFrom, f.AirportTo } into g // group by route
select g.OrderBy(x => x.Price).First() // select cheapest flight 

关于c# - Linq GroupBy。返回数据子集的前一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15342082/

相关文章:

c# - 在列表上使用.Where()

c# - 循环中的值比较,值相等时打破循环的最佳方法?

c# - 如何根据搜索的字符串过滤列表框中的项目

sql - 需要使用 MYSQL 在 LEFT JOIN 中计数

c# - 是否可以在 Visual Studio 项目中使用 linq 语法使用 Mysql?

c# - 如何在 C# 中处理 List.First 中不匹配的情况?

c# - 绑定(bind)图表系列

c# - 如何在 C# 中的特定标签处创建工具提示点?

sql - 在同一个表 PostgreSql 上加入多个选择查询

php - 选择最后x行的总和SQL和PHP