Сравнение строк в Kotlin по пользовательскому порядку, определенному в другом списке - PullRequest
0 голосов
/ 08 января 2019

У меня есть список учетных записей:

data class Account(
        val currency: String?
)

Мне нужно отсортировать счета по валюте, но не по естественному (алфавитному) порядку строк, который все уроки там уже объяснили до смерти, а по пользовательскому порядку, определенному предпочтительно в списке так что мне не нужно делать какую-то некрасивую цепочку «если бы еще». Например, если бы я использовал список

listOf("USD", "EUR", "RMB")

для сортировки, затем идут счета с валютой "USD", с "EUR секундами" и последними с "RMB".

1 Ответ

0 голосов
/ 08 января 2019

Функция sortedBy будет работать:

val sortOrder = listOf("USD", "EUR", "RMB")
val accounts = listOf(Account("EUR"), Account("USD"), Account("RMB"))
val sortedAccounts = accounts.sortedBy { sortOrder.indexOf(it.currency) }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...