我正在尝试使用 LINQ 运算符对字母序列进行排序Order
,但没有得到预期的结果。我原以为传递StringComparer.CurrentCulture
会产生与传递 不同的顺序StringComparer.CurrentCultureIgnoreCase
,但两者似乎都忽略了我字母的大小写:
string[] letters = ["y", "X", "Z"];
Console.WriteLine(String.Join(", ", letters.Order(StringComparer.CurrentCulture)));
Console.WriteLine(String.Join(", ", letters.Order(StringComparer.CurrentCultureIgnoreCase)));
输出:
X, y, Z
X, y, Z
在线演示。
我期望 会对CurrentCulture
字母的大小写敏感,并且会产生这样的顺序:X, Z, y
,因为小英文字母在 ASCII 图表中比大写英文字母更远。我理解不正确是什么?