嵌套LINQ查询在这种情况下?如何创建嵌套组
本文关键字:嵌套 创建 何创建 LINQ 查询 这种情况下 | 更新日期: 2023-09-27 18:06:07
我需要一个嵌套LINQ的帮助。
我的场景是
我有一个列表
HotelId int
列表在房间里我有一个房间
我有重复的hotels条目和重复的roomsid条目
像这样
hotelid 2500
- RoomID 23
- RoomID 26
HotelId 3500
- RoomID 50
- RoomID 65
HotelId 2500
- RoomID 23
HotelId 3900
- RoomID 48
HotelId 3500
- RoomID 32
我想在酒店附近先订一个团当然这很容易
listaHoteisEncontrados.GroupBy( x => x.HotelId );
但是我需要一些东西在
Dictionary<int,List<rooms>>
其中int是我的IdHotel和rooms是一个房间列表,我在这里尝试了一些示例
Dictionary<int, List<Dados.HotelSearchResponse.Room>> otroDic =
listaHoteisEncontrados
.GroupBy( x => x.HotelId )
.ToDictionary(
g => g.Key,
g => g
.GroupBy( e => e.Room
.GroupBy( f => f.RoomType ).ToDictionary
( g2 => g2.Key, g2 => g2.Select( p => p.RoomType ).ToList() )
)
);
不成功. .有人能帮我吗?
这是另一个可能的解决方案。我只是没能从清单上删除重复的房间。: D
var dic = new Dictionary<int, List<Room>>();
foreach (var hotel in listaHoteisEncontrados)
{
if (!dic.ContainsKey(hotel.Id))
{
dic.Add(hotel.Id, hotel.Rooms);
}
else
{
dic[hotel.Id].AddRange(hotel.Rooms);
//remove duplicate rooms here
}
}