我有一个像这样的对象
List<Hotel> Hotels;
public class Hotel
{
List<RoomType> RoomType;
}
public class RoomType
{
Room Room;
}
public class Room
{
int RoomId;
}
我想最终得到一个酒店列表,但RoomId的RoomType嵌套列表是不同的。也就是说,如果已经为另一家酒店提供了RoomId,我不想再次添加酒店。我尝试了很多解决方案并尝试了MoreLinq,但我能找到的只是如何获得一个独特的内部列表。
答案 0 :(得分:2)
根据我的理解,您希望有一个明确的RoomId
列表以及每一个Hotel
:
var result = hotels.SelectMany(hotel => hotel.RoomType.Select(room => new { Id = room.RoomId, Hotel = hotel }))
.GroupBy(item => item.Id)
.Select(group => group.FirstOrDefault());