我有一个帐户列表:
data class Account(
val currency: String?
)
我需要按货币对帐户进行排序,而不是按字符串的自然(字母顺序)排序,那里的所有教程都已经说明了这一点,而是通过自定义排序(最好在列表中进行定义) ,因此我不必执行某种难看的“ if-else”链。例如,如果我使用了列表
listOf("USD", "EUR", "RMB")
进行排序,然后是货币为“ USD”的帐户,第二个为“ EUR”的帐户,最后是“人民币”的帐户。
答案 0 :(得分:2)
sortedBy函数将起作用:
val sortOrder = listOf("USD", "EUR", "RMB")
val accounts = listOf(Account("EUR"), Account("USD"), Account("RMB"))
val sortedAccounts = accounts.sortedBy { sortOrder.indexOf(it.currency) }