我需要按降序(日期)获取arraylist的数据。为此,我们使用lambda表达式的orderby特征。但在这样做时,我遇到了一个问题。如果是null日期,则返回错误。错误是“输入字符串不是正确的DateTime”。
示例:
var comnData = ch.Request.NsType.SomeCollection.Cast<MiscType>().Select(x => x.Data).Where(x => !string.IsNullOrEmpty(x.Date)).OrderByDescending(x => DateTime.ParseExact(x.Date, @"dMyyyy", culture));
如果我不使用where子句,则会抛出错误。如果我使用,那么我无法获取具有null Date的数据。
答案 0 :(得分:3)
您可以使用三元运算符
OrderByDescending(x => x.Date!=null? DateTime.ParseExact(x.Date, @"dMyyyy", culture):DateTime.MinValue)
答案 1 :(得分:1)
你只需检查null并在这种情况下返回一些默认日期(如'1970-01-01')在OrderByDescending lambda表达式中。