У меня есть список моих пользовательских клиентов класса, и я хочу отсортировать их в алфавитном порядке по названию. Поэтому я написал
myList = myList.OrderByDescending(x => x.Title).ToList<Customer>();
Теперь проблема в том, что этот метод не поддерживает шведский способ сортировки букв Å, ä, Ö. Они должны появиться в конце после буквы Z, но они этого не делают.
Итак, я сделал метод обходного пути, который заменяет шведские буквы перед заказом, а затем изменяет их обратно после слова. Похоже, но это довольно медленно. Может кто-нибудь думать о лучшем виде?
private List<Customer> OrderBySwedish(List<Customer> myList)
{
foreach (var customer in myList)
{
customer.Title = customer.Title.Replace("å", "zzz1").Replace("ä", "zzz2").Replace("ö", "zzz3").Replace("Å", "Zzz1").Replace("Ä", "Zzz2").Replace("Ö", "Zzz3");
}
myList= myList.OrderBy(x => x.Title).ToList<Customer>();
foreach (var customer in myList)
{
customer.Title = customer.Title.Replace("zzz1", "å").Replace("zzz2", "ä").Replace("zzz3", "ö").Replace("Zzz1", "Å").Replace("Zzz2", "Ä").Replace("Zzz3", "Ö");
}
return myList;
}