列表中的Kotlin筛选器列表
如何在尝试筛选嵌套列表时返回原始列表(或列表副本),我有以下方法: 如果使用.map,我将得到嵌套列表作为返回,如果使用flatMap,我将得到嵌套列表-->列表>列表中的Kotlin筛选器列表,kotlin,Kotlin,如何在尝试筛选嵌套列表时返回原始列表(或列表副本),我有以下方法: 如果使用.map,我将得到嵌套列表作为返回,如果使用flatMap,我将得到嵌套列表-->列表> private fun filterForShop( 列表:可变列表 ):列表{ val result=list.map{ it.compList.filter{comp-> 公司id!=“方形” } } } 我的对象看起来像: data class WidgetItem( val id: String, val
private fun filterForShop(
列表:可变列表
):列表{
val result=list.map{
it.compList.filter{comp->
公司id!=“方形”
}
}
}
我的对象看起来像:
data class WidgetItem(
val id: String,
val title: String,
val kind: String,
val compList: List<CompItem>
)
数据类WidgetItem(
valid:String,
val标题:字符串,
val kind:字符串,
val compList:列表
)
您可以使用.allow()
执行操作,但保留原始上下文
private fun filterForShop(
list: MutableList<WidgetItem>
): List<WidgetItem> =
list.also {
it.compList = it.compList
.filter { comp ->
comp.id != "square"
}
}
private fun filterForShop(
列表:可变列表
):列表=
还有{
it.compList=it.compList
.filter{comp->
公司id!=“方形”
}
}
只有当
compList
可写时,这才起作用,但在本例中不是这样。
您需要按照@IR42的建议进行操作。您可以使用.allow()
执行操作,但保留原始上下文
private fun filterForShop(
list: MutableList<WidgetItem>
): List<WidgetItem> =
list.also {
it.compList = it.compList
.filter { comp ->
comp.id != "square"
}
}
private fun filterForShop(
列表:可变列表
):列表=
还有{
it.compList=it.compList
.filter{comp->
公司id!=“方形”
}
}
只有当
compList
可写时,这才起作用,但在本例中不是这样。
您需要按照@IR42的建议执行。因为
compList
是val
我们只能用新的compList
值复制旧元素
private fun filterForShop(
list: MutableList<WidgetItem>
): List<WidgetItem> = list.map {
it.copy(compList = it.compList.filter { comp ->
comp.id != "square"
})
}
private fun filterForShop(
列表:可变列表
):List=List.map{
复制(compList=it.compList.filter{comp->
公司id!=“方形”
})
}
因为compList
是val
我们只能用新的compList
值复制旧元素
private fun filterForShop(
list: MutableList<WidgetItem>
): List<WidgetItem> = list.map {
it.copy(compList = it.compList.filter { comp ->
comp.id != "square"
})
}
private fun filterForShop(
列表:可变列表
):List=List.map{
复制(compList=it.compList.filter{comp->
公司id!=“方形”
})
}
一个CompItem
的外观如何?CompItem=>数据类CompItem(val id:String,val title:String)
一个CompItem
的外观如何?CompItem=>数据类CompItem(val id:String,val title:String)