2012-04-03 2 views
2

Извините, я задаю слишком много вопросов подряд.Заказать строку, считая ее целым числом

У меня есть список строк, как это:

«firstnumber-lastnumber»

Я хочу, чтобы отсортировать его по первому номеру, а затем последний номер

, например, если у меня есть:

"2-43" 
"1-11" 
"1-9" 

после сортировки она должна быть такой:

"1-9" 
"1-11" 
"2-43" 

Я использовал этот LINQ запрос:

numbers.OrderBy(s => s.Split('-')[0]).ThenBy(s => s.Split('-')[1]); 

, но этот порядок запроса их по струнной логике, а не по логике Int.

так что если у меня есть 2 и 11, я хочу 2 придти до 11

(упорядочение по струне логических порядка 11 до 2, так как он начинается с «1»)

спасибо за любого help

+2

Любой шанс, что вы могли бы обновить базу данных, чтобы использовать два столбца типа межд? Кажется странным хранить цифры как строку, если вам нужно делать числовые сравнения. –

ответ

6

int.Parse(str) для преобразования str на номер.

numbers.OrderBy(s => int.Parse(s.Split('-')[0])).ThenBy(s => int.Parse(s.Split('-')[1])); 
Смежные вопросы