Linq按Null排序结果

时间:2016-02-11 11:51:05

标签: c# linq

我有一个查询,它返回了我的跟随结果

level_1_srg_key level_2_srg_key level_3_srg_key
NULL            NULL            1
NULL            1               NULL
NULL            1               1
1               NULL            NULL
1               NULL            1
1               1               NULL
1               1               1
1               2               1
1               2               3
3               1               1

这是linq查询:

    var query = from t in dbContext.SYSTEM_BEHAVIOURAL_W
                            where l.Contains(t.SRG_KEY)
                            group t by
                                new
                                {
                                    t.LEVEL_1_SRG_KEY,
                                    t.LEVEL_2_SRG_KEY,
                                    t.LEVEL_3_SRG_KEY
                                }
                                into grp
                            select
                            grp.Key;

我需要首先按2行的顺序排序此结果 在具有1 NULL的行之后 在具有0 NULL的行

之后

怎么做?

1 个答案:

答案 0 :(得分:3)

query = query.OrderBy(t => 
      (t.LEVEL_1_SRG_KEY == null ? 0 : 1) 
    + (t.LEVEL_2_SRG_KEY == null ? 0 : 1) 
    + (t.LEVEL_3_SRG_KEY == null ? 0 : 1));