使用过滤器创建子列表不起作用
Creation of sublist using filter is not working
我正在尝试从列表中提取所有不在已创建的子列表中的元素。我无法使用 .filterNot
使其工作,因为它过滤了列表中 class 存储的整体数据。
var subList2 = allList.filterNot { subList1.contains(it) }.toMutableList()
但 allList 和 subList 是数据列表 class 定义为:
data class Food(
var name: Name,
var state: State
)
截至目前,使用此代码,sublist2
可以包含 sublist1
中的食物,因为 state
不同。
我希望过滤器只在 name
上完成,所以子列表 2 只包含不在 sublist1
中的食物,无论 state
是什么。
有什么想法吗?
尝试映射 subList1
个名称:
val subList1Names = subList1.map { it.name }
var subList2 = allList.filterNot { it.name in subList1Names }.toMutableList()
我正在尝试从列表中提取所有不在已创建的子列表中的元素。我无法使用 .filterNot
使其工作,因为它过滤了列表中 class 存储的整体数据。
var subList2 = allList.filterNot { subList1.contains(it) }.toMutableList()
但 allList 和 subList 是数据列表 class 定义为:
data class Food(
var name: Name,
var state: State
)
截至目前,使用此代码,sublist2
可以包含 sublist1
中的食物,因为 state
不同。
我希望过滤器只在 name
上完成,所以子列表 2 只包含不在 sublist1
中的食物,无论 state
是什么。
有什么想法吗?
尝试映射 subList1
个名称:
val subList1Names = subList1.map { it.name }
var subList2 = allList.filterNot { it.name in subList1Names }.toMutableList()