Sorting a List of Custom Objects
我有一个名为person的类,它包含一个属性last name,它反映了与该人的姓氏对应的字符串。
我创建了如下列表:
1 | var People = List<Person> |
我要做的是按姓氏属性按字母顺序对人员进行排序。
在看了一些例子之后,我试过
1 | People = People.OrderBy(p => p.LastName); |
号
但它不起作用。
使用linq,您需要将结果转换回
1 | People = People.OrderBy(p => p.LastName).ToList(); |
由于
但是,由于您实际上需要就地排序,因此也可以直接使用
1 | People.Sort((p1, p2) => p1.LastName.CompareTo(p2.LastName)); |
号
最简单的是使用
1 | People = People.OrderBy(p => p.LastName).ToList(); |
您需要
对原始列表进行排序的另一个选项是使用
1 | People.Sort((p1,p2) => p1.LastName.CompareTo(p2.LastName)); |
。
您需要将orderby的结果转换为
1 | var people = People.OrderBy(p => p.LastName).ToList(); |