LINQ OrderBy не сортируется правильно
Надеюсь, кто-то может доказать мне, что я неправ здесь :)
Если я это сделаю:
List<string> a = new List<string> { "b", "c", "a", "aa" };
var b = a.OrderBy(o => o).ToList();
Я ожидаю, что результатом "b" будет:
a
aa
b
c
Вместо этого я получаю:
a
b
c
aa
Как я могу заставить OrderBy выполнить "правильный" алфавитный вид? Я просто ошибаюсь? :)
Ответы
Ответ 1
Youre в датской культуре, которая рассматривает aa
как å
и ставит ее после ø
соответственно. Вы можете передать строковый сопоставитель, который по-разному действует на OrderBy
чтобы изменить это:
var b = a.OrderBy(o => o, StringComparer.InvariantCulture).ToList();
Ответ 2
Скорее всего, культурная вещь. Вы можете попробовать следующее:
List<string> a = new List<string> { "b", "c", "a", "aa" };
var b = a.OrderBy(o => o, StringComparer.InvariantCultureIgnoreCase).ToList();