使用Linq将项目移动到列表底部

POI*_*OIR 9 c# linq asp.net

这是我的代码:

var list = from c in child_categories orderby c.Translated_Syntax 
           select new { Name = c.Translated_Syntax, ID = c.ID_Category } ;

lst_category.DataSource = list;    
lst_category.DataBind();
Run Code Online (Sandbox Code Playgroud)

我的分类列表是:汽车,其他,儿童,房子,女孩,显示.

如果我订购我的清单,结果将是:

  • 汽车
  • 孩子
  • 女孩
  • 其他
  • 节目

但是我希望将"其他"项目放在列表的底部.像这样的东西:

  • 汽车
  • 孩子
  • 女孩
  • 节目
  • 其他

我怎样才能做到这一点?

Tim*_*ter 23

你可以使用这个Orderby- "技巧":

from c in child_categories 
orderby c.Translated_Syntax == "Other", c.Translated_Syntax
Run Code Online (Sandbox Code Playgroud)

你还记得它是如何工作了这种方式:比较返回bool这里true1false0.这就是为什么orderby Translated_Syntax == "Other"最后列出"其他" 的原因.如果你想要它在你之前要么必须扭转条件或(更好)使用它descending.

  • @ fripp13:确定:`var q = child_categories.OrderBy(c => c.Translated_Syntax =="Other").ThenBy(c => c.Translated_Syntax)` (5认同)