我在alfabet中寻呼国家,因此国家开始使用A-D,E-H等。 但是我也希望列出åbrohw在a,和thepollewop在e。 我尝试使用stringcompare选项提供string.starts,但它不起作用......
我在sv-SE文化代码下运行,如果这很重要......
米歇尔
答案 0 :(得分:6)
有关创建没有变音符号的版本的解决方案,请参阅How do I remove diacritics (accents) from a string in .NET?,您可以将其用于比较(同时仍然显示带有变音符号的版本)。
答案 1 :(得分:4)
哦,是的,文化很重要。如果您运行以下内容:
List<string> letters = new List<string>() { "Å", "B", "A" };
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("sv-SE");
letters.Sort();
Console.WriteLine("sv-SE:")
letters.ForEach(s => Console.WriteLine(s));
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("en-GB");
letters.Sort();
Console.WriteLine("en-GB:")
letters.ForEach(s => Console.WriteLine(s));
...你得到以下输出:
sv-SE:
A
B
Å
en-GB:
A
Å
B
答案 2 :(得分:1)
尝试使用范围选择而不是精确匹配。
A: (firstLetter <= A)
B: (firstLetter > A) AND (firstLetter <= B)
...
答案 3 :(得分:1)
您必须提供特定的文化来进行排序或为此编写自己的比较器。瑞典语的最终排序顺序是å,ä,ö。
很可能你想用变音符号来分解字母并将它们排序,好像它们没有变音符号一样。