Как отфильтровать список по возрастанию?

Jeeves

Client
Регистрация
22.02.2018
Сообщения
51
Благодарностей
5
Баллы
8
Здравствуйте. Есть папка с файлами, которые названы цифрами по возрастанию - 0, 1, 2, 3. Когда я засовываю эти файлы в список, то они идут 1, 11, 2, 21 и так далее. Подскажите как их взять в список чтобы очередность была как в папке?
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
у меня в папке при сортировке по имени, точно так же как у тебя в списке

78401


Никому не известно как у тебя в папке сортировка настроена.
ну а для правильной сортировки по имени надо переименовать цифры в формат 0001, 0002, 0003 ... ну и так далее. так как при сравнении строк учитывается еще и длина строки

78402
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
Здравствуйте. Есть папка с файлами, которые названы цифрами по возрастанию - 0, 1, 2, 3. Когда я засовываю эти файлы в список, то они идут 1, 11, 2, 21 и так далее. Подскажите как их взять в список чтобы очередность была как в папке?
Здравствуйте.

Можете использовать метод сортировки на C# здесь: https://zennolab.com/discussion/threads/nepravilnaja-sortirovka-cifr-v-spiske.27008/post-596134

Конкретно в вашем применении снипет может выглядеть так:
C#:
var lst = project.Lists["Список 1"].ToList();// зеновский список
var z = lst.OrderBy(x => Convert.ToInt32(Regex.Match(x, @"[^\\]+(?=_)").Value)).ToList();
project.Lists["Список 1"].Clear();
project.Lists["Список 1"].AddRange(z);
Список до работы снипета:

78411


Список после работы снипета:

78413


Приложил тестовый шаблон.
 

Вложения

  • Спасибо
Реакции: Jeeves и nicanil

Jeeves

Client
Регистрация
22.02.2018
Сообщения
51
Благодарностей
5
Баллы
8
Здравствуйте.

Можете использовать метод сортировки на C# здесь: https://zennolab.com/discussion/threads/nepravilnaja-sortirovka-cifr-v-spiske.27008/post-596134

Конкретно в вашем применении снипет может выглядеть так:
C#:
var lst = project.Lists["Список 1"].ToList();// зеновский список
var z = lst.OrderBy(x => Convert.ToInt32(Regex.Match(x, @"[^\\]+(?=_)").Value)).ToList();
project.Lists["Список 1"].Clear();
project.Lists["Список 1"].AddRange(z);
Список до работы снипета:

Посмотреть вложение 78411

Список после работы снипета:

Посмотреть вложение 78413

Приложил тестовый шаблон.
Почему то выбивает ошибку - http://joxi.ru/bmoMJlGCyV4gDA
 
  • Спасибо
Реакции: Биржевик

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 820
Баллы
113

Jeeves

Client
Регистрация
22.02.2018
Сообщения
51
Благодарностей
5
Баллы
8
Скорее всего на каком-то из файлов не отрабатывает регулярка.
Вам нужно составить выражение под свой формат файлов (чтоб в результате его работы оставалось только число).
Да, разобрался, спасибо!
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)