C#按字母顺序排序列表

时间:2016-11-16 20:15:35

标签: c#

如何按以下格式按姓氏对用户列表进行排序?

first.last

first.mi.last

const VisibleTodoList = connect(mapStateToProps, mapDispatchToProps)(TodoList);

按名字排序,这不是我想要做的。我是否需要使用RegEx?

3 个答案:

答案 0 :(得分:5)

您可以使用ALTER TABLE ButlerSchedule ADD ButlerID INT, ADD CustID INT, ADD CONSTRAINT fk_Butler_ButlerSchedule FOREIGN KEY (ButlerID) REFERENCES Butler(ButlerID), ADD CONSTRAINT fk_ButlerCustomer_ButlerSchedule FOREIGN KEY (CustID) REFERENCES ButlerCustomer(CustID); 为用户订购:

Linq

如果您使用相同的姓氏,则可以按中间名命名用户。如果您有相同的中间名,您可以按名字订购用户:

using System.Linq;
mylist.OrderBy(x => x.LastName);

答案 1 :(得分:2)

假设您的名称是简单字符串(而不是具有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 

答案 2 :(得分:0)

如果要对进行排序,请尝试指定比较器

 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)));