首页 > 解决方案 > 如何在模板中使用 sortBy

问题描述

例如,我有一个 BigClass,其中包含一个 String(别名)对象,因此我可以使用 bigClass.alias 获取它,并且我有一个 String 数组将它们保持在所需的顺序例如

    val theList: MutableList<BigClass> = listOf(
BigClass(SomeObject("good",anotherObject,context, etc)
BigClass(SomeObject("bad",anotherObject,context2, etc2)
BigClass(SomeObject("okay",anotherObject3,context3, etc3)
)

和字符串数组:

val strList: MutableList<String> = mutableListOf("bad", "okay", "good")

如何根据strList字符串顺序对列表进行排序?谢谢

标签: sortingkotlin

解决方案


这是一种按有序列表排序的有效方法

val strList = listOf("bad", "okay", "good")

val order = strList.withIndex().associate { it.value to it.index }
val sorted = theList.sortedBy { order[it.someObject.alias] }

推荐阅读