使用distinct时,我无法通过id项目进行排序

时间:2014-04-01 13:59:26

标签: c# asp.net-mvc linq

我正在为此做好准备并尝试了很多版本,但这对我不起作用 我需要通过id获得一个独特的排序。我明白,在明确之后我需要订购我的清单,但我无法获得任何标识符。我得到的结果没有逻辑顺序(1,2,8,4,5,6,9)。请告诉我。

public class TakeAway
{
    public int TakeAwayId { get; set; }
    public int GenreId { get; set; }
    public virtual Genre genre { get; set; }
}

public class Genre
{
    public int GenreId { get; set; }
    public string GenreName { get; set; }
    public List<TakeAway> TakeAwys { get; set; }

}

var allDishGenre = 
    db.TaKeAways.Select(x => x.genre.GenreName).Distinct().OrderBy(g => g).ToList();
ViewBag.GenreTab = allDishGenre;

1 个答案:

答案 0 :(得分:0)

此:

db.TaKeAways.Select(x => x.genre.GenreName).Distinct()

返回一个不同的名称列表(字符串),它没有任何标识符。你需要:

db.TakeAways
  .GroupBy(ta => ta.genre.GenreName)
  .Select(g => g.FirstOrDefault())
  .OrderBy(ta => ta.TakeAwayId)
  .ToList()