假设我有一个人员列表,我需要首先按年龄排序,然后再按姓名排序。
作为一个C#背景下的开发者,我可以很容易地使用LINQ来实现这一点:
var list=new List<Person>();
list.Add(new Person(25, "Tom"));
list.Add(new Person(25, "Dave"));
list.Add(new Person(20, "Kate"));
list.Add(new Person(20, "Alice"));
//will produce: Alice, Kate, Dave, Tom
var sortedList=list.OrderBy(person => person.Age).ThenBy(person => person.Name).ToList();
如何使用Kotlin实现这一点?
这是我尝试过的(显然是错误的,因为第一个“sortedBy”子句的输出会被第二个子句覆盖,导致仅按名称排序的列表)
val sortedList = ArrayList(list.sortedBy { it.age }.sortedBy { it.name })) //wrong