LINQ OrderBy没有正确排序

foa*_*amy 51 c# linq

我希望有人可以在这里证明我错了:)

如果我这样做:

List<string> a = new List<string> { "b", "c", "a", "aa" };
var b = a.OrderBy(o => o).ToList();
Run Code Online (Sandbox Code Playgroud)

我希望'b'的结果是:

a
aa
b
c
Run Code Online (Sandbox Code Playgroud)

相反,我得到的结果是:

a
b
c
aa
Run Code Online (Sandbox Code Playgroud)

如何让OrderBy进行"正确"的字母排序?我错了吗?:)

Ry-*_*Ry- 123

你在丹麦的文化,它把aa作为å后把它ø相应.您可以传递一个不同的字符串比较器OrderBy来更改它:

var b = a.OrderBy(o => o, StringComparer.InvariantCulture).ToList();
Run Code Online (Sandbox Code Playgroud)

  • @HimBromBeere:它必须是一种文化的东西,所以我检查了https://en.wikipedia.org/wiki/Alphabetical_order#Language-specific_conventions. (38认同)
  • 很好的答案,但你是如何得出这个结论的? (10认同)
  • 你怎么知道他在丹麦文化?:P (8认同)

Kim*_*ess 20

很可能是文化的东西.你可以试试这个:

List<string> a = new List<string> { "b", "c", "a", "aa" };
var b = a.OrderBy(o => o, StringComparer.InvariantCultureIgnoreCase).ToList();
Run Code Online (Sandbox Code Playgroud)