相关疑难解决方法(0)

忽略字符串比较中的重音字母

我需要比较C#中的2个字符串,并将重音字母与非重音字母相同.例如:

string s1 = "hello";
string s2 = "héllo";

s1.Equals(s2, StringComparison.InvariantCultureIgnoreCase);
s1.Equals(s2, StringComparison.OrdinalIgnoreCase);
Run Code Online (Sandbox Code Playgroud)

这两个字符串需要相同(就我的应用程序而言),但这两个语句都评估为false.C#中有没有办法做到这一点?

c# string localization

128
推荐指数
4
解决办法
6万
查看次数

订单用瑞典字母

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

myList = myList.OrderByDescending(x => x.Title).ToList<Customer>();
Run Code Online (Sandbox Code Playgroud)

现在问题是这种方法不支持瑞典方式对字母å,ä,ö进行排序.它们应该出现在字母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;
    }
Run Code Online (Sandbox Code Playgroud)

c# sorting letters

11
推荐指数
1
解决办法
3302
查看次数

标签 统计

c# ×2

letters ×1

localization ×1

sorting ×1

string ×1