如何从对象列表的属性中提取不同的对象?

时间:2017-12-26 17:47:28

标签: c# linq

我创建了以下viewmodel,用于从我的数据库中获取单个列表中3个表的所有结果:

public class ResultsVM
{
    public Room room { get; set; }
    public Hotel hotel { get; set; }
    public List<Picture> pictures { get; set; }
}

然后我将我的视图传递给ResultsVM

列表
@model List <ResultsVM>

现在我正在尝试从此列表中提取一个包含不同对象Hotel的新列表。

有没有办法用Linq实现它,还是我应该循环并逐个比较它们?

1 个答案:

答案 0 :(得分:2)

假设List<ResultsVM> results = ... var hotels = results .Select(r => r.Hotel) .GroupBy(h => h.HotelId) .Select(g => g.First()) .ToList(); 个对象具有唯一ID,您可以使用此LINQ查询获得不同的酒店:

<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>