gpt4 book ai didi

c# - 带瑞典字母的 OrderBy

转载 作者:可可西里 更新时间:2023-11-01 08:34:19 24 4
gpt4 key购买 nike

我有一个自定义类 Customer 的列表,我想按标题的字母顺序对它们进行排序。所以我写了

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;
}

最佳答案

您可以使用特定于文化的 StringComparer,请参阅 here .

CultureInfo culture = new CultureInfo("sv-SE");
var result = myList.OrderByDescending(x =>
x.Title, StringComparer.Create(culture, false));

关于c# - 带瑞典字母的 OrderBy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7229445/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com