Сортировать коллекцию по нескольким полям в Kotlin [дубликат]
На этот вопрос уже есть ответ здесь:
Как отсортировать на основе / сравнить несколько значений в Kotlin? 1 ответДопустим, у меня есть список людей, которых нужно отсортировать по возрасту, а затем по имени.
Исходя из языка 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