带有lambda表达式的C#二次排序
如何在C#中对列表进行二次排序。 例如,如果我有一个名为Student的类,它有两个字段FirstName和LastName。 到目前为止,我对列表的排序如下:带有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 =&
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);