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

发布于 2025-01-18 14:59:12 字数 575 浏览 0 评论 0原文

我正在尝试从列表中提取所有未创建的sublist中的元素。我无法使用.filternot使它起作用,因为它在列表中的整体数据类存储上过滤。

var subList2 = allList.filterNot { subList1.contains(it) }.toMutableList()

数据类列表

data class Food(
    var name: Name,
    var state: State
)

但是Alllist和Sublist是定义为:到目前为止的 ,使用此代码,sublist2可以包含sublist1中的食物,因为state state state < /代码>不同。

我希望仅在name上完成过滤器,因此Sublist2仅包含sublist1中不包含的食物,无论state是什么。

有什么想法吗?

I am trying to extract from a list all element which are not in the sublist already created. I cannot make it work using .filterNot because it filtering on the overall data class store in the list.

var subList2 = allList.filterNot { subList1.contains(it) }.toMutableList()

but allList and subList are a list of data class defined as :

data class Food(
    var name: Name,
    var state: State
)

As of now, using this code, the sublist2 can contain food that are in sublist1 because state is different.

I want the filter to be done only on name so the sublist2 only contain food which is not in the sublist1 whatever the state is.

Any idea ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

神经大条 2025-01-25 14:59:13

尝试映射 subList1 名称:

val subList1Names = subList1.map { it.name }
var subList2 = allList.filterNot { it.name in subList1Names }.toMutableList()

Try to map the subList1 names:

val subList1Names = subList1.map { it.name }
var subList2 = allList.filterNot { it.name in subList1Names }.toMutableList()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文