Classificar coleção por vários campos no Kotlin [duplicado]
Esta pergunta já tem uma resposta aqui:
Como classificar com base / comparar vários valores no Kotlin? 1 respostaDigamos que eu tenho uma lista de pessoas que preciso classificar primeiro por idade e depois por nome.
Vindo de um plano de fundo em C #, posso facilmente fazer isso no referido idioma usando o 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();
Como alguém consegue isso usando o Kotlin?
Foi o que tentei (obviamente está errado, pois a saída da primeira cláusula "selectedBy" é substituída pela segunda que resulta em uma lista classificada apenas por Nome)
val sortedList = ArrayList(list.sortedBy { it.age }.sortedBy { it.name })) //wrong