首页 > 解决方案 > 复制列表但修改字段

问题描述

我有一个清单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)
}

这是 a 的Person样子:

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

我可以val status进入var,但实际上我不应该修改原始数据。那么我可以做一个转换技巧来让这更容易吗?

所有其他数据也必须相同。

标签: kotlintransformation

解决方案


val newList = list.map { person ->
    person.copy(status = "not-active")
}

推荐阅读