在这种情况下嵌套的LINQ查询?如何创建嵌套组?

时间:2011-08-18 18:18:27

标签: c# linq group-by nested

我需要一个嵌套LINQ的帮助。

我的方案是

我有一个带

的列表

HotelId int 列表

内部房间我有一个房间

我有重复的酒店条目和roomsid的重复条目

像这样的东西

HoteId 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,房间是我在这里试过一些样品的房间列表

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() )
                        )
                );

没有成功..任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

这是另一种可能的解决方案。我只是没有设法从列表中删除重复的房间..: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
    }
}