List.OrderBy返回空字符串的集合

时间:2014-12-05 20:54:22

标签: linq sql-order-by

我有一个集合字符串日期值,其中一些是空字符串(“”)。

当我使用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

1 个答案:

答案 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的那个分支工作,然后一步一步地重建它,直到我开始遇到问题。