【发布时间】:2012-12-25 22:02:15
【问题描述】:
如何在 C# 中使用二级排序对列表进行排序。 例如,如果我有一个名为 Student 的类,它有两个字段 FirstName 和 LastName。 到目前为止,我已将列表排序如下:
MyStudents.Sort((s1, s2) => s1.LastName.CompareTo(s2.LastName));
我想知道如何先按姓氏然后按名字对列表进行排序。 谢谢。
【问题讨论】:
标签: c#
如何在 C# 中使用二级排序对列表进行排序。 例如,如果我有一个名为 Student 的类,它有两个字段 FirstName 和 LastName。 到目前为止,我已将列表排序如下:
MyStudents.Sort((s1, s2) => s1.LastName.CompareTo(s2.LastName));
我想知道如何先按姓氏然后按名字对列表进行排序。 谢谢。
【问题讨论】:
标签: c#
Sort 没有这种能力。
Linq 可以简单地做到这一点:
MyStudents.OrderBy(s => s.LastName).ThenBy(s => s.FirstName)
确保您至少使用 .NET 3.5 并引用了 System.Linq 命名空间。
【讨论】:
你可以使用LINQ:
MyStudents.OrderBy(e => e.LastName).ThenBy(e => e.FirstName);
【讨论】:
ThenBy 不是 ThanBy