ammlung nach mehreren Feldern in Kotlin sortieren [duplizieren]
Diese Frage hat hier bereits eine Antwort:
Wie kann man in Kotlin nach mehreren Werten sortieren / vergleichen? 1 AntwortNehmen wir an, ich habe eine Liste mit Personen, die ich zuerst nach Alter und dann nach Namen sortieren muss.
Aus einem C # -Hintergrund kommend, kann ich dies in dieser Sprache mit LINQ auf einfache Weise erreichen:
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();
Wie schafft man das mit Kotlin?
Dies ist, was ich versucht habe (es ist offensichtlich falsch, da die Ausgabe der ersten "SortedBy" -Klausel von der zweiten überschrieben wird, was zu einer Liste führt, die nur nach Name sortiert ist)
val sortedList = ArrayList(list.sortedBy { it.age }.sortedBy { it.name })) //wrong