kotlin中的排序和分组

Sorting and grouping in kotlin

我在 kotlin 中有一个对象列表,我想按数字然后按字符串对它们进行排序。有没有办法做到这一点?我浏览了数百篇文章,但没有任何效果。

myList.sortedWith(compareBy<Item> {it.name.id }.thenBy{it.name.secondname}) 此代码无效。

myList当然是Item的一种。

问候

@编辑

但是如果我有 10 个相同的 ID 怎么办?代码不会到达 .thenBy 检查。是否可以检查整对字段?

myList.sortedWith(compareBy<Item> {it.name.id }.thenBy{it.name.secondname}) returns 列表的排序副本,但不会修改原始列表。

如果要修改原始列表,可以使用sortWith代替sortedWith:

myList.sortWith(compareBy<Item> { it.name.id }.thenBy { it.name.secondname })

或重新分配myList变量:

myList = myList.sortedWith(compareBy<Item> { it.name.id }.thenBy { it.name.secondname })