我有一个集合字符串日期值,其中一些是空字符串(“”)。
当我使用OrderBy子句时,遵循以下语句
theList = theList.OrderBy(Function(x)x.age).ToList()
返回空字符串集合。
但是,如果我使用OrderByDescending运算符,则按降序数据值正确排序结果。
样本日期值为“2014-10-31 00:00:00.000”,“2014-09-30 00:00:00.000”,“2014-11-30 00:00:00.000”,“”,“ 2014-08-31 00:00:00.000“。
请问有什么问题?
谢谢,
Piyush Varma
答案 0 :(得分:1)
我的第一直觉是,如果x.billedthru短于10个字符,你可以看到这种行为。如果您尝试这样做,它会返回行:
Dim returnCollection As List(Of FundedAccountsDetail) = New List(Of FundedAccountsDetail)
Select Case sortBy
Case "billedthru"
If Ascending = "ASC" Then
returnCollection = reportCollection.OrderBy(Function(x) x.BilledThru).ToList()
ElseIf Ascending = "DESC" Then
returnCollection = reportCollection.OrderByDescending(Function(x) x.BilledThru).ToList()
End If
Case Else
returnCollection = reportCollection
End Select
如果是,那么问题就是子串。如果没有,我承认这是令人困惑的。我可能尝试的是从if的第一个分支删除顺序,看看它是否返回行。基本上回到我的方式,直到if的那个分支工作,然后一步一步地重建它,直到我开始遇到问题。