我在开发我们的系统的时候在某个地方徘徊。我有2个不同的日期时间列DateModified和DateCreated。我想同时根据这两列对数据进行排序。等;
Id Name DateCreated DateModified
-------------------------------------------------- ------
1阿里2015-01-01 2015-02-02
2 Veli 2015-01-02 2015-02-03
3 Mehmed 2015-02-01 2015-02-05
4 Ahmed 2015-02-04 null
当我想通过这些数据降序时,它应该给我
的结果 3 Mehmed
4艾哈迈德
2 Veli
1阿里
那么......这样做的方法是什么?感谢
答案 0 :(得分:4)
根据我的理解,您希望结果按两个日期排序为单个属性,而不是使用ThenBy吗?
不是LINQ专家,但我认为这应该有效:
var Result = Items.OrderBy(x=> x.DateModified==null ? x.DateCreated : x.DateModified);
编辑:
这假设修改日期始终在创建日期之后。在一般情况下,它看起来像这样:
var Result = Items.OrderBy(x=> x.A >= x.B ? x.A : x.B);
答案 1 :(得分:2)
使用OrderBy
和ThenBy
var Result = Items.OrderBy(x => x.DateModified).ThenBy(x => x.DateCreated);
答案 2 :(得分:0)
如果Ahmed是第二名,那么你可以使用DateCreated而不是null:
Items.OrderBy(a => a.DateModified != default(DateTime?) a.DateModified: a.DateCreated);