【发布时间】:2012-08-11 06:16:18
【问题描述】:
我有一长串要在网格中排序的字符串值。最初,默认排序算法用于整个网格。但是,我最终不得不重写网格的排序,因为有几列需要特殊排序,而网格不允许对特定列进行自定义排序。这里有问题的列不需要特殊排序,所以我只使用了 CompareTo:
Public Function Compare(ByVal p1 as MyObj, ByVal p2 as MyObj) As Integer
Return p1.Description.CompareTo(p2.Description)
End Function
比较默认的网格排序方法和我现在使用 CompareTo 的方法,我得到了完全相同的结果。但是,来自直接数据库查询的排序结果不同(根据我的想法,数据库结果是正确的)。
以下是我认为不正确的排序结果的三个示例:
示例 1
排序结果:
- 测试 - A/A 我的测试
- TEST1000 A 测试
- TEST1000 测试
- 测试测试
- 测试-B/A 我的测试
预期结果:
- 测试 - A/A 我的测试
- 测试-B/A 我的测试
- TEST1000 A 测试
- TEST1000 测试
- 测试测试
示例 2
排序结果:
- 测试 - 测试
- 测试我
- 测试-#1 A
- 测试-#1 B
预期结果:
- 测试我
- 测试 - 测试
- 测试-#1 A
- 测试-#1 B
示例 3
排序结果:
- 路易丝测试 1
- 路易丝测试 2
- 路易- 测试 1
预期结果:
- 路易- 测试 1
- 路易丝测试 1
- 路易丝测试 2
以前有没有人遇到过这个问题或者有什么想法?
【问题讨论】:
标签: vb.net string sorting compare compareto