У меня есть длинный список строковых значений, которые я пытаюсь отсортировать в сетке. Изначально для всей сетки использовался алгоритм сортировки по умолчанию. Однако в итоге мне пришлось переписать сортировку для сетки, потому что несколько столбцов требовали специальной сортировки, а сетка не допускала пользовательской сортировки для определенных столбцов. Рассматриваемый здесь столбец не требовал специальной сортировки, поэтому я просто использовал 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 МОЙ ТЕСТ
- ТЕСТ1000 ТЕСТ
- ТЕСТ1000 ТЕСТ
- ТЕСТ ТЕСТ
- ТЕСТ-B/A МОЙ ТЕСТ
Ожидаемый результат:
- ТЕСТ- A/A МОЙ ТЕСТ
- ТЕСТ-B/A МОЙ ТЕСТ
- ТЕСТ1000 ТЕСТ
- ТЕСТ1000 ТЕСТ
- ТЕСТ ТЕСТ
Пример 2
Сортировать результат:
- ТЕСТ- ТЕСТ
- ПРОВЕРЬ МЕНЯ
- ТЕСТ-#1 А
- ТЕСТ-#1 Б
Ожидаемый результат:
- ПРОВЕРЬ МЕНЯ
- ТЕСТ- ТЕСТ
- ТЕСТ-#1 А
- ТЕСТ-#1 Б
Пример 3
Сортировать результат:
- ЛУИЗА ТЕСТ 1
- ЛУИЗА ТЕСТ 2
- ЛУИ - ТЕСТ 1
Ожидаемый результат:
- ЛУИ - ТЕСТ 1
- ЛУИЗА ТЕСТ 1
- ЛУИЗА ТЕСТ 2
Кто-нибудь сталкивался с этим раньше или есть какие-либо идеи, что здесь может происходить?