复制列表但修改字段

时间:2019-06-06 02:44:51

标签: kotlin transformation

我有一个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 个答案:

答案 0 :(得分:2)

class BadJumbleException : public std::exception {
    public:
        BadJumbleException(const std::string& m_) : msg(m_) {}
        virtual ~BadJumbleException() {}

        virtual const char * what() const throw() {
            return msg.c_str();
        }

    private:
        const std::string msg;
};