【发布时间】:2019-03-05 14:57:39
【问题描述】:
我有以下收藏模型:酒店
public class Hotel {
int HotelId {get;set;}
decimal Price {get;set;}
int vendorId {get;set;}
int vendorHotelId {get;set;}
}
记录会是这样的
HotelId Price VendorId VendorHotelId
1 100 1 0
2 200 2 0
3 300 1 0
4 400 2 1
如果 VendorHotelId 等于 HotelId 那么我需要选择 LINQ 中价格最低的记录。
我想要这样的结果
HotelId Price VendorId VendorHotelId
1 100 1 0
2 200 2 0
3 300 1 0
谁能帮我解决这个问题?
【问题讨论】:
-
hotels.GroupBy(h => h.vendorHotelId).Select(g => g.OrderBy(h => h.Price).First());将为您提供由 vendorHotelId 定义的每个组中最便宜的酒店,假设hotels是所有酒店的集合。 -
根据要求hotelId应该等于VendorHotelId。预期结果中的所有行都没有相同的 hotelId 和 VendorHotelId
-
@Matt.G 因为我从源中取了vendorhotelid等于hotelid的酒店,只挑了价格最便宜的酒店,所以从源中去掉了
-
如何在结果中从源设置 VendorHotelId 为 0?
-
@Stemado,请咨询 OP
标签: c# linq collections