Как я могу отсортировать строку текста с последующим номером с помощью LINQ

Я использовал следующий вид:

var query = _cityRepository.GetAll(
               .OrderBy(item => item.RowKey.Substring(0, 4))
               .ThenBy(item => item.ShortTitle)

Однако у меня возникла проблема, потому что мой ShortTitle выглядит так:

Liverpool - 1
Liverpool - 2
...
Liverpool - 9
Liverpool - 10
Liverpool - 11
West Kirby - 1
West Kirby - 8
West Kirby - 12

Когда я сортирую это с помощью LINQ, это происходит в порядке

Liverpool - 1
Liverpool - 11
Liverpool - 12
Liverpool - 2
West Kirby - 1
West Kirby - 12
West Kirby - 8

ShortTitle всегда представляет собой строку слов, за которой следует один дефис, а затем число.

Есть ли способ, которым я могу заставить это сортировать правильно?

Ответы на вопрос(5)

Ваш ответ на вопрос