C# 这种情况下的嵌套LINQ查询?如何创建嵌套的groupby?
我需要一个关于嵌套LINQ的帮助 我的设想是 我有一份清单 霍特利德酒店 名单 在房间里我有一个室友 我有一个重复的酒店条目和重复的roomsid条目 像这样的 霍泰德2500酒店C# 这种情况下的嵌套LINQ查询?如何创建嵌套的groupby?,c#,linq,group-by,nested,C#,Linq,Group By,Nested,我需要一个关于嵌套LINQ的帮助 我的设想是 我有一份清单 霍特利德酒店 名单 在房间里我有一个室友 我有一个重复的酒店条目和重复的roomsid条目 像这样的 霍泰德2500酒店 23号房间 室友26 霍特利德3500酒店 室友50 室友65 霍特利德2500酒店 23号房间 霍特利德3900酒店 室友48 霍特利德3500酒店 32号房间 我想先去旅馆,这当然容易 listaHoteisEncontrados.GroupBy( x => x.HotelId );
- 23号房间
- 室友26
- 室友50
- 室友65
- 23号房间
- 室友48
- 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() )
)
);
字典=
listaHoteisEncontrados
.GroupBy(x=>x.HotelId)
.ToDictionary(
g=>g.键,
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
}
}
var dic=newdictionary();
foreach(listaHoteisEncontrados var酒店)
{
如果(!dic.CONTANSKEY(酒店Id))
{
dic.Add(酒店Id、酒店客房);
}
其他的
{
dic[hotel.Id].AddRange(hotel.Rooms);
//在这里删除重复的房间
}
}
您是否尝试过类似的方法?嗯。。这是有效的,不是一个好的解决办法。。因为我需要把所有的东西再读一遍,才能编出一本有独特的旅馆和房间的字典。。我想要一本词典Hi abbas,有一段时间我用这个解决方案做到了,但我确信在linq有办法做到。谢谢你,但是谢谢。我希望有人在linq有更好的解决方案