[prg] Re: Сортировка в ListBox
Приветствую всех.
По умолчанию элементы ListBox сортируются в алфавитном порядке, то есть
сравниваются посимвольно. Именно так они у вас и отсортированы. Для
алфавитного порядка строка
"011меньше, чем строка "02", потому что первые символы у них совпадают, а
код символа "1" меньше, чем код символа "2"; на этом сравнение
заканчивается.
Вам нужно реализовать свой алгоритм сортировки, например, преобразовать
имена файлов (без расширения) в числа и сравнивать эти числа.
Чтобы изменить правило сортировки, нужно реализовать свой класс, унаследовав
его от класса ListBox и переопределить метод Sort(), в котором и осуществить
нужный вам вариант сортировки.
См. документацию по методу ListBox.Sort -- там есть пример подобного
переопределения.
https://msdn.microsoft.com/ru-ru/library/system.windows.forms.listbox.sort%28v=vs.110%29.aspx
Другой вариант -- это отменить автоматическую сортировку в ListBox,
установив свойство Sorted равным false.
А перед добавлением элементов в список, отсортировать массив, возвращаемый
GetFiles() в нужном вам порядке.
См. документацию по методу Array.Sort (Array, IComparer)
https://msdn.microsoft.com/ru-ru/library/aw9s5t8f%28v=vs.110%29.aspx