所以我正在生成从数据库中提取的最高评级标题列表,并返回带有评级的列表。我遇到的问题是它返回重复。我可以使用另一个列表来比较和排除标题,但这只会留下一对,因为初始函数需要(5)。因为我不确定在初始功能中阻止它的位置是希望有人可以帮助我。感谢
这就是我拉动Top5标题的原因:
public List<MediaRating> IndividualTopFive()
{
var topFiveList = db.MediaRatingData
.Include(u => u.Title)
.Where(u => u.RateFor.UserName == User.Identity.Name)
.OrderByDescending(i => i.MediaRatingID)
.OrderByDescending(r => r.Rating)
.Take(5)
.ToList();
return topFiveList;
答案 0 :(得分:0)
首先请注意,您的数据库中可能存在重复项,因此您可能只是首先将其删除。
如果您确定要从查询结果中删除重复项,那么根据您的MediaRating类的外观,您可以使用Linq的Distinct
方法或DistictBy
来自MoreLinq(或来自John Skeet's post)。
请注意,Distinct
方法可能会重新排序您的元素(这取决于Linq提供程序的实现),因此您应该在排序之前调用它。另一方面,您可以在DistinctBy
之前使用John Skeet的.Take(5)
来获得适当的结果,因为它可以保证保留元素的顺序。