for (i in 0 until result.size){ result[i].config= addConfig(taskNames!![i],processKeys!![i]) }
这里是具有数据成员config的类的列表,而tasNames和processKeys是字符串列表。 kotlin中有没有一种方法可以使用各自的taskNames和processKeys映射result.config,而无需使用传统的循环并提及结果的长度。我是kotlin的新手。
class Process {
var processKey: String? = null
var task: List<Task>? = null}
class Task {
var taskName: String? = null
var processVariables: List<ProcessVariable>? = null}
class ProcessVariable {
var name: String? = null
var label: String? = null
var applicableValue: List<String>? = null}
数据成员配置pf类型为ProcessVariable的结果已经存在
答案 0 :(得分:1)
如果我正确理解您的问题,则需要合并3个列表。 因此,与某些聪明的列表转换方法相比,遍历列表可能更容易理解。
您可以摆脱传统的for循环,因此无需计算循环的大小:
result.forEachIndexed {
i, resultData -> resultData.config = addConfig(taskNames[i], processKeys[i])
}
如果要合并两个列表,可以使用zip
方法:
val configList = taskNames.zip(processKeys) {tsk, prc -> addConfig(tsk, prc)}
在您的示例中,结果对象已经存在。也许创建新的结果对象比较容易:
val results = configList.map {
Result(config = it)
}