按顺序如何设置字符在前,符号在后

In order By how to set character at first and symbol at last

下面是我的代码

List<User> listOfUsers = new List<User>()
{
   new User() { Key = "AFG", Value = "Afghanistan" },
   new User() { Key = "ALA", Value = "Åland Islands"},
   new User() { Key = "BHR", Value = "Bahrain" },
   new User() { Key = "ARG", Value = "Argentina"},
};

List<User> usersByAge = listOfUsers.OrderBy(user => user.Value).ToList();
foreach (User user in usersByAge)
{
    var k = user.Key;
    var v = user.Value;
    Console.WriteLine(user.Key + ": " + user.Value);
 }


class User
{
public string Key { get; set; }
public string Value { get; set; }
}

我希望奥兰群岛最后显示在列表中而不是第二个,因为奥兰群岛有符号而不是 A

根据我的代码,它显示在第二位,但我希望奥兰群岛最后显示

谁能帮我解决这个问题?

您应该使用 StringComparer.Ordinal,它根据 unicode 代码点排序。

只需替换为:

List<User> usersByAge = listOfUsers.OrderBy(user => user.Value, StringComparer.Ordinal).ToList();

现在奥兰岛将排在最后。