我创建了以下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实现它,还是我应该循环并逐个比较它们?
假设Hotel
对象具有唯一ID,您可以使用此LINQ查询获得不同的酒店:
List<ResultsVM> results = ...
var hotels = results
.Select(r => r.Hotel)
.GroupBy(h => h.HotelId)
.Select(g => g.First())
.ToList();