Вы можете передать пользовательский метод сравнения в метод сортировки списков.
Синтаксис подобен приведенному ниже, где «YourComparer» - это функция с вашей реализацией для сравнения двух строк, а «list» - это список строк.
list.Sort(Function(s1, s2) YourComparer(s1, s2))
«YourComparer» должен возвращать целочисленное значение с учетом двух строк, указывающее, должна ли первая строка располагаться до, после или иметь ту же позицию, что и вторая.
Ниже приведен пример реализации.
Private Function YourComparer(ByVal s1 As String, ByVal s2 As String) As Integer
' **** compare using your own implementation ****
' return less than zero if s1 should preceed s2
' return zero if s1 has same position in sort order
' return greater than zero if s1 should follow s2
' EXAMPLE using the length of strings to determine sort order
' Replace section with your own implementation
If (s1.Length = s2.Length) Then Return 0 ' same position
If (s1.Length > s2.Length) Then Return -1 ' should come before
Return 1 ' should come after
End Function