Сделайте копию списка, но измените поле - PullRequest
0 голосов
/ 06 июня 2019

У меня есть список People.

. Я хочу изменить статус каждого человека с "active" на "not-active".Я не могу изменить исходную структуру данных или исходные данные.

fun changeClone(list: List<People>) {

    val newList = MutableList<People>()

    list.forEach { person ->
        //i feel there has to be an easier faster way to do this in kotlin
        val newPerson(person.name, ...., status = "not-active")
        newList.add(newPerson)
    }
    showUi(newList)
}

Вот как выглядит Person:

data class Person(val name: String, ..., val status: String) {
}

Я мог бы превратить val status в var но на самом деле я не должен изменять исходные данные.Так есть ли какой-нибудь трюк с трансформациями, который я могу сделать, чтобы сделать это проще?

Также все остальные данные должны быть такими же.

1 Ответ

2 голосов
/ 06 июня 2019
val newList = list.map { person ->
    person.copy(status = "not-active")
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...