我有一个LINQ查询,用于填充设计者列表。
由于我使用的是以下过滤器,因此我的排序功能无法正常运行。
我的问题是,鉴于以下代码,我如何在事后对列表进行最佳排序或在查询时进行排序?
我尝试使用以下脚本对事件进行排序,但我收到编译错误:
List<TBLDESIGNER> designers = new List<TBLDESIGNER>();
designers = 'calls my procedure below and comes back with an unsorted list of designers'
designers.Sort((x, y) => string.Compare(x.FIRST_NAME, y.LAST_NAME));
我的查询如下:
List<TBLDESIGNER> designer = null;
using (SOAE strikeOffContext = new SOAE())
{
//Invoke the query
designer = AdminDelegates.selectDesignerDesigns.Invoke(strikeOffContext).ByActive(active).ByAdmin(admin).ToList();
}
代表:
public static Func<SOAE, IQueryable<TBLDESIGNER>> selectDesignerDesigns =
CompiledQuery.Compile<SOAE, IQueryable<TBLDESIGNER>>(
(designer) => from c in designer.TBLDESIGNER.Include("TBLDESIGN")
orderby c.FIRST_NAME ascending
select c);
过滤ByActive:
public static IQueryable<TBLDESIGNER> ByActive(this IQueryable<TBLDESIGNER> qry, bool active)
{
//Return the filtered IQueryable object
return from c in qry
where c.ACTIVE == active
select c;
}
过滤ByAdmin:
public static IQueryable<TBLDESIGNER> ByAdmin(this IQueryable<TBLDESIGNER> qry, bool admin)
{
//Return the filtered IQueryable object
return from c in qry
where c.SITE_ADMIN == admin
select c;
}
提前致谢, 比利
答案 0 :(得分:3)
你的帖子里有很多内容,但我选择回答问题:
Linq - 如何对列表进行排序
使用声明性OrderBy和ThenBy方法。
designers = designers
.OrderBy(td => td.FirstName)
.ThenBy(td => td.LastName)
.ToList();