У меня есть этот LINQ Query:
TempRecordList = new ArrayList(TempRecordList.Cast<string>().OrderBy(s => s.Substring(9, 30)).ToArray());
Отлично работает и выполняет сортировку точно, но немного отличается от того, что я хочу. Среди результатов запроса я вижу что-то вроде этого:
Palm-Bouter, Peter
Палмер-Джонсон, Шон
В то время как мне действительно нужно, чтобы имена сортировались следующим образом:
Палмер-Джонсон, Шон
Palm-Bouter, Питер
По сути, я хочу, чтобы символ '-' обрабатывался как находящийся ниже символа, чтобы имена, содержащие его, появлялись позже при поиске по возрастанию.
Вот еще один пример. Я получаю:
Диас, Реджинальд
ДиБлэкли, Антон
Вместо:
ДиБлэкли, Антон
Диас, Реджинальд
Как видите, опять порядок меняется из-за того, как обрабатывается заглавная буква "B".
Итак, мой вопрос: что мне нужно изменить в моем запросе LINQ, чтобы он возвращал результаты в указанном порядке. Любая обратная связь будет очень оценена.
Кстати, я пытался использовать s.Substring (9, 30) .ToLower () , но это не помогло.
Спасибо!