将Linq结果中的特定行放在顶部?

时间:2010-09-28 15:37:45

标签: c# winforms linq

假设我有一个像下面那样的linq查询

var LinqResult =
    from a in Db.Table
    select new {Table = a};

从这里开始,如何从这些结果中获取特定行并将其放在最前面?

4 个答案:

答案 0 :(得分:0)

添加

 orderby a.Id == someId // or some other condition

答案 1 :(得分:0)

如果你已经根据id来知道你想要在哪一行,你可以尝试根据行ID进行排序。

var LinqResult =
    from a in Db.Table
    orderby a.Id == checkId descending
    select new {Table = a};

答案 2 :(得分:0)

 orderby (a.Id == someId ? 1 : 2)

通过对数字1或2进行排序,使得排序相当明确,取决于它是否是所需的最高值。

你可以通过对bool表达式本身进行排序来简化这一点,除了false < true,所以为了得到someId,你必须写:

 orderby a.Id != someId

 orderby a.Id == someId descending

答案 3 :(得分:0)

你可以尝试

var LinqResult =
    (from a in Db.Table
    select new {a.column}).Orderby();