使用过滤器创建子列表不起作用

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()