Linq查询按升序排序,但一行除外

时间:2015-06-18 17:20:37

标签: c# linq

我从表格中提取数据,如下例所示:

status_id   status_description
1             Unknown
2             Personal
3             Terminated
4             Relocated
6             Other
7             LOP
8             Continuing

我想将结果导入IEnumerable,然后返回到前端以在下拉列表中显示描述。

我想按字母顺序排序,并在下拉列表的底部显示“其他”选项。

有没有办法在后端获得这个?目前我有这个:

 IEnumerable<employee_map> map= await(from emp in db.emp_status_map
 orderby emp.status_description
 select emp).ToListAsync();

2 个答案:

答案 0 :(得分:2)

只需对两个值进行排序,首先是描述是Other,还是实际描述本身:

orderby emp.status_description == "Other", emp.status_description

答案 1 :(得分:1)

Servy的答案很好,它可以满足您的要求。另一个略有不同的解决方案是添加一个名为&#34; DisplayOrder&#34;的字段,并将其设置为1,除了&#34;其他&#34;以外的所有行,并将其设置为2(或你想要的任何数字)&#34;其他&#34;。然后,您只需按DisplayOrder,Description订购。

如果你在DisplayOrder,Description上定义一个索引,这个解决方案很可能会快得多。