从MVC中的列表中删除重复标题

时间:2016-05-14 08:19:56

标签: c# asp.net-mvc visual-studio

所以我正在生成从数据库中提取的最高评级标题列表,并返回带有评级的列表。我遇到的问题是它返回重复。我可以使用另一个列表来比较和排除标题,但这只会留下一对,因为初始函数需要(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;

1 个答案:

答案 0 :(得分:0)

首先请注意,您的数据库中可能存在重复项,因此您可能只是首先将其删除。

如果您确定要从查询结果中删除重复项,那么根据您的MediaRating类的外观,您可以使用Linq的Distinct方法或DistictBy来自MoreLinq(或来自John Skeet's post)。

请注意,Distinct方法可能会重新排序您的元素(这取决于Linq提供程序的实现),因此您应该在排序之前调用它。另一方面,您可以在DistinctBy之前使用John Skeet的.Take(5)来获得适当的结果,因为它可以保证保留元素的顺序。