按顺序如何设置字符在前,符号在后
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();
现在奥兰岛将排在最后。
下面是我的代码
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();
现在奥兰岛将排在最后。