我有一个查询,我想返回 tblcours 类型的对象列表,就像这样
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();
}
此查询正在执行的操作是获取 tblcours 类型的对象列表,然后删除具有相同 MainHeadingID 的重复记录。这很好用,但是,我还需要将返回的数据按字母顺序排列,但是,无论我尝试什么,我都不能这样做。
到目前为止,我已尝试过以下
distinctResult.OrderBy(c => c.CourseTitle);
return distinctResult.ToList();
但是这永远不会奏效,它只会继续返回无序的列表。
有人可以帮帮我吗?
感谢您的帮助。
答案 0 :(得分:4)
试试这个:
distinctResult= distinctResult.OrderBy(c => c.CourseTitle);
return distinctResult.ToList();
因为OrderBy返回有序可枚举为here is said。 Order by不是modyfing collection。
我强烈建议使用resharper,他会抓住这些东西并警告你
答案 1 :(得分:2)
您需要使用OrderBy
的返回值:
return distinctResult.OrderBy(c => c.CourseTitle).ToList();
OrderBy
未订购distinctResult
。相反,它返回一个有序的新枚举。