VB.NET使用CompareTo排序顺序-结果不正确?
我有一个很长的字符串值列表,我正试图在网格中进行排序。最初,默认的排序算法用于整个网格。然而,我最终不得不重写网格的排序,因为一些列需要特殊排序,网格不允许对特定列进行自定义排序。此处讨论的列不需要特殊排序,因此我仅使用CompareTo:VB.NET使用CompareTo排序顺序-结果不正确?,vb.net,string,sorting,compare,compareto,Vb.net,String,Sorting,Compare,Compareto,我有一个很长的字符串值列表,我正试图在网格中进行排序。最初,默认的排序算法用于整个网格。然而,我最终不得不重写网格的排序,因为一些列需要特殊排序,网格不允许对特定列进行自定义排序。此处讨论的列不需要特殊排序,因此我仅使用CompareTo: Public Function Compare(ByVal p1 as MyObj, ByVal p2 as MyObj) As Integer Return p1.Description.CompareTo(p2.Description) End
Public Function Compare(ByVal p1 as MyObj, ByVal p2 as MyObj) As Integer
Return p1.Description.CompareTo(p2.Description)
End Function
比较默认的网格排序方法和我现在使用的CompareTo方法,我得到了完全相同的结果。但是,直接数据库查询的排序结果有所不同(根据我认为的情况,数据库结果是正确的)
以下是我认为不正确的排序结果的三个示例:
示例1
排序结果:
考虑使用一个重载,使您可以指定为序号谢谢Jim!这正是我所需要的。最后我做了以下操作:
String.CompareOrdinal(p1.Description,p2.Description)