Estou tentando ordenar uma sequência de letras utilizando o Order
operador LINQ e não estou obtendo o resultado esperado. Eu esperava que passar the StringComparer.CurrentCulture
produzisse uma ordem diferente da passagem the StringComparer.CurrentCultureIgnoreCase
, mas ambos parecem ignorar o caso das minhas cartas:
string[] letters = ["y", "X", "Z"];
Console.WriteLine(String.Join(", ", letters.Order(StringComparer.CurrentCulture)));
Console.WriteLine(String.Join(", ", letters.Order(StringComparer.CurrentCultureIgnoreCase)));
Saída:
X, y, Z
X, y, Z
Eu esperava que CurrentCulture
fosse sensível ao caso das letras e produzisse esta ordem: X, Z, y
, porque as letras minúsculas em inglês estão mais distantes no gráfico ASCII do que as letras maiúsculas em inglês. O que não estou entendendo corretamente?