I have been using the following sort:
var query = _cityRepository.GetAll(
.OrderBy(item => item.RowKey.Substring(0, 4))
.ThenBy(item => item.ShortTitle)
However I am having a problem because my ShortTitle looks like this:
Liverpool - 1
Liverpool - 2
...
Liverpool - 9
Liverpool - 10
Liverpool - 11
West Kirby - 1
West Kirby - 8
West Kirby - 12
When I sort this using LINQ it comes in the order
Liverpool - 1
Liverpool - 11
Liverpool - 12
Liverpool - 2
West Kirby - 1
West Kirby - 12
West Kirby - 8
The ShortTitle is always a string of words followed by a single hyphen and then a number.
Is there a way I can get this to sort correctly?
It’s because you are sorting them as strings, and for strings 11 comes before 2. You’ll need to parse the
ShortTitleto give you the (I’m assuming)intvalue at the end, and sort by that.Your LINQ query can be changed to this for it to work: