带有lambda表达式的C#二次排序

带有lambda表达式的C#二次排序,c#,C#,如何在C#中对列表进行二次排序。 例如,如果我有一个名为Student的类,它有两个字段FirstName和LastName。 到目前为止,我对列表的排序如下: MyStudents.Sort((s1, s2) => s1.LastName.CompareTo(s2.LastName)); 我想知道如何先按姓氏再按名字对列表进行排序。 谢谢。排序没有该功能 Linq可以简单地做到这一点: MyStudents.OrderBy(s => s.LastName).ThenBy(s =&

如何在C#中对列表进行二次排序。 例如,如果我有一个名为Student的类,它有两个字段FirstName和LastName。 到目前为止,我对列表的排序如下:

MyStudents.Sort((s1, s2) => s1.LastName.CompareTo(s2.LastName));
我想知道如何先按姓氏再按名字对列表进行排序。
谢谢。

排序
没有该功能

Linq可以简单地做到这一点:

MyStudents.OrderBy(s => s.LastName).ThenBy(s => s.FirstName)
确保您至少使用了.NET 3.5,并且引用了
System.Linq
命名空间。

您可以使用:

您可以使用和


请注意,
OrderBy
ThenBy
不会更改
MyStudents
列表的顺序,它们会返回一个
IEnumerable
,因此如果您需要
列表,请使用。

您有一个打字错误-
ThenBy
而不是
ThanBy
MyStudents.OrderBy(e => e.LastName).ThenBy(e => e.FirstName);
var sortedList = MyStudents.OrderBy(s => s.LastName).ThenBy(s=> s.FirstName);