我的自定义数组列表在 android Kotlin 中排序不正确

My custom arraylist is not sorting properly in android Kotlin

val sortedList = allNovelList.sortedWith(compareBy { (it as Novel).no })allNovelList.sortBy { (it as Novel).no }

我有一个自定义对象列表,其中添加了整数 'no',例如 id 或主键。 从 0 到 9 排序工作得很好,但在 9 之后,10 低于 1。

我第一次在 Kotlin 工作 Android。我在网上找遍了,但找不到正确的代码。

这两行都给出了相同的排序。 我想要的是, 1,2,3,....,9,10,11,12...., 排序后我得到了什么。 1,10,11,2,3,4,5,6...,9

按字母顺序排序。

正如您在评论中提到的,no 是一个字符串,因此它会根据字符串排序规则对其进行排序。

你应该试试这个:

val sortedList = allNovelList.sortBy { (it as Novel).no.toInt() }

确保 no 是一个整数。