c#按字母顺序排序列表
本文关键字:排序 列表 顺序 | 更新日期: 2023-09-27 18:18:29
如何按照以下格式按姓氏对用户列表进行排序?
。去年
first.mi.last
mylist.Sort();
按名字排序,这不是我想做的。我是否需要使用RegEx?
您可以使用Linq
来订购您的用户:
using System.Linq;
mylist.OrderBy(x => x.LastName);
如果您有相同的姓氏,您可以按中间名排序用户。如果你有相同的中间名,你可以按名字排序用户:
mylist.OrderBy(x => x.LastName).ThenBy(x => x.MiddleName).ThenBy(x => x.FirstName);
假设你的名字是简单的字符串(而不是具有FirstName和LastName属性的对象),就像这样:
var list = new List<string> { "c.a", "a.c" , "b"};
你可以这样排序:
var orderedList = list.OrderBy(item => item.Split('.').Last());
输出:c.a
b
a.c
如果要对进行排序,请尝试指定比较器
mylist.Sort((left, right) => string.Compare(left.LastName, right.LastName));
如果mylist
包含string
项,则必须提取LastName
:
private static String LastName(string value) {
if (string.IsNullOrEmpty(value))
return value;
int p = value.LastIndexOf('.');
return value.SubString(p + 1);
}
...
mylist.Sort((left, right) => string.Compare(LastName(left), LastName(right)));