Сортировка списка по цифрам. Как?

  • Автор темы Автор темы backoff
  • Дата начала Дата начала

backoff

Client
Регистрация
20.04.2015
Сообщения
6 386
Реакции
6 671
Баллы
113
Привет, есть вот такой список

C#:
Развернуть Свернуть Копировать
url_id1 ( 2342532 / название1 )
url_id2 ( 423423 / название2 )
url_id3 ( 432342 / название3 )
url_id4 ( 123123 / название4 )
url_id5 ( 1242342 / название5 )
url_id6 ( 3453 / название6 )
url_id7 ( 235456 / название7 )
url_id8 ( 2343345 / название8 )
url_id9 ( 53234 / название9 )

надо сделать сортировку по убыванию
чтоб в начале списка шли строки где большие цыфри и далее меньше

возможно ли такое сделать?

то есть нужен вот такой результат

C#:
Развернуть Свернуть Копировать
url_id8 ( 2343345 / название8 )
url_id5 ( 1242342 / название5 )
url_id7 ( 235456 / название7 )
и тд
 
Операции над таблицей->Сортировать. Не, не то?
 
На днях был подобный вопрос, там решение было с помощью C# снипета.
Деталей не вспомню.
 
это список, но все равно не то, не сортирует как надо
На днях был подобный вопрос, там решение было с помощью C# снипета.
да, уже нашел

но пока не получается правильно составить регулярку, ругается
 
то есть такая регулярка работает
C#:
Развернуть Свернуть Копировать
(?<=\(\ ).+?(?=\ /)
(?<=\(\ ).*?(?=\ /)

72402


C#:
Развернуть Свернуть Копировать
var lst = project.Lists["signal"].ToList();// зеновский список
var z = lst.OrderBy(x => Convert.ToInt32(Regex.Match(x, "(?<=\(\ ).+?(?=\ /)").Value)).ToList();
project.Lists["signal"].Clear();
project.Lists["signal"].AddRange(z);
C#:
Развернуть Свернуть Копировать

но выдает ошибку
72403
 
  • Оценить
Реакции: backoff
правильный сниппет, всем спасибо!

по возрастанию
C#:
Развернуть Свернуть Копировать
var lst = project.Lists["signal"].ToList();// зеновский список
var z = lst.OrderBy(x => Convert.ToInt32(Regex.Match(x, @"(?<=\(\ ).+?(?=\ /)").Value)).ToList();
project.Lists["signal"].Clear();
project.Lists["signal"].AddRange(z);

по убыванию
C#:
Развернуть Свернуть Копировать
var lst = project.Lists["signal"].ToList();// зеновский список
var z = lst.OrderByDescending(x => Convert.ToInt32(Regex.Match(x, @"(?<=\(\ ).+?(?=\ /)").Value)).ToList();
project.Lists["signal"].Clear();
project.Lists["signal"].AddRange(z);
 

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