2013-10-01 34 views
0

我需要以降序(日期)獲取數組的列表數據。爲此,我們使用lambda表達式的orderby特性。但是在做這件事時我面臨一個問題。在空日期的情況下,它返回錯誤。錯誤是「輸入字符串不正確的日期時間」。如何使用orderby for Arraylist?

例子:

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子句,它拋出一個錯誤不要使用。如果我使用,那麼我無法獲取具有空日期的數據。

回答

3

您可以使用三元操作符

OrderByDescending(x => x.Date!=null? DateTime.ParseExact(x.Date, @"dMyyyy", culture):DateTime.MinValue) 
1

你只需要檢查空,在這種情況下(如「1970-01-01」)在您的OrderByDescending lambda表達式返回一些默認的日期。