0

我有一个查询,我想返回tblcous类型的对象列表,就像这样

public IList<tblcours> GetAllLiveCoursesByUnitID(int id)
{
    Expression<Func<tblcours, bool>> predicate = x => x.tblCourseCategoryLinks.Any(cl => cl.tblUnitCategory.tblUnit.unitID == id);
    int headingId = 180;

    var distinctResult = from c in _UoW.tblcoursRepo.All
                             .Where(c => c.MainHeadingID != headingId)
                             .Where(predicate)
                             group c by c.MainHeadingID into uniqueIds
                             select uniqueIds.FirstOrDefault();

    return distinctResult.ToList();

}

该查询的作用是获取tblcous类型的对象列表,然后删除具有相同MainHeadingID的重复记录。这很好用,但是,我还需要返回的数据按字母顺序排列,但是,无论我尝试什么,我都做不到。

到目前为止,我已经尝试了以下

distinctResult.OrderBy(c => c.CourseTitle);
return distinctResult.ToList();

但这永远不会起作用,它只是继续返回未排序的列表。

有人可以帮我吗?

谢谢你的帮助。

4

2 回答 2

4

尝试这个:

distinctResult= distinctResult.OrderBy(c => c.CourseTitle);
return distinctResult.ToList();

因为 OrderBy 正在返回有序可枚举,如此处所述。Order by 不是修改集合。

我强烈推荐使用 resharper,他会捕捉到这些东西并警告你

于 2013-09-10T13:19:32.717 回答
2

您需要使用的返回值OrderBy

return distinctResult.OrderBy(c => c.CourseTitle).ToList();

OrderBy没有distinctResult就地订购。相反,它返回一个新的有序枚举。

于 2013-09-10T13:20:16.667 回答