我有一个自定义类 Customer 的列表,我想按 Title 的字母顺序对它们进行排序。所以我写了
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;
}