我想遍歷items'sdata并創建一個新的 SomeData 串列,item.type但是當型別是UNKNOWN我需要跳過該元素而不添加到串列時。我怎樣才能實作它?continue@map不適用于收集
fun getListOfMyItems(
items: List<SomeData>,
): List<MyItem> {
return items.groupBy {
Instant.ofEpochMilli(it.timestamp)
.toYear()
}.map { element ->
val myItemsList = element.data.map{ item ->
val itemsList: SomeData = when (item.type) {
Type.FIRST -> doChangesOnDataForFIRSTandReturn(item)
Type.SECOND -> doChangesOnDataForSECONDandReturn(item)
Type.UNKNOWN -> //how skip item here and not add to itemsList?
}
myItemsList
}
MyItem(
items = myItemsList
)
}
}
uj5u.com熱心網友回復:
在開始迭代串列之前,您始終可以過濾掉這些值。
items.filter { it.type == Type.UNKNOWN }
.groupBy{ ... }
uj5u.com熱心網友回復:
我已經給出了如下所示的解決方案here
fun getListOfMyItems(
items: List<SomeData>,
): List<MyItem> {
return items.groupBy {
Instant.ofEpochMilli(it.timestamp)
.toYear()
}.map { element ->
val myItemsList = element.data.mapNotNull foo@{ item ->
val itemsList: SomeData = when (item.type) {
Type.FIRST -> doChangesOnDataForFIRSTandReturn(item)
Type.SECOND -> doChangesOnDataForSECONDandReturn(item)
Type.UNKNOWN -> return@foo null
}
myItemsList
}
MyItem(
items = myItemsList
)
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/475979.html
