I need to sort a list of strings, which contain numbers and letters.

When I perform a sort, I get patterns not dissimilar to those below:

Code:
1-A
10-A
11-A
...
19-A
2-A
20-A
21-A
Is there any quick way to fix this problem, or do I have to pad the numbers within the strings prior to sorting?