Comportamento inesperado ao classificar seqüências de caracteres com letras e traços

Se eu tiver uma lista de cadeias de caracteres que contenha todos os números e hífens, elas serão classificadas em ordem crescente:

s = s.OrderBy(t => t).ToList();

66-0616280-000
66-0616280-100
66-06162801000
66-06162801040

Isto é como esperado.

No entanto, se as seqüências contiverem letras, a classificação será um tanto inesperada. Por exemplo, aqui está a mesma lista de cadeias com A à direita substituindo os 0s e, sim, ela é classificada:

66-0616280-00A
66-0616280100A
66-0616280104A
66-0616280-10A

Eu esperava que eles classificassem assim:

66-0616280-00A
66-0616280-10A
66-0616280100A
66-0616280104A

Por que a classificação se comporta de maneira diferente na seqüência de caracteres quando contém letras versus quando contém apenas números?

Desde já, obrigado.

questionAnswers(2)

yourAnswerToTheQuestion