我正在尝试使用listOf("P5","P1","P2","P3","P10")进行排序:val list = categoryList.sortedBy { it },但返回的内容是:[P1, P10, P2, P3, P5],根据我的要求,它应该返回[P1, P2, P3, P5, P10],所以我在这里做错了什么?

最佳答案

您正在排序String列表而不是Integer列表。那就是P10出现在P2前面的原因。因此,请尝试以下方法进行排序:

 var list: List<String> = mutableListOf("P5","P1","P2","P3","P10")
            .sortedWith(compareBy({ it.length }, { it }))

07-27 16:48