首页 > 解决方案 > 在 Kotlin 中使用列表进行 setOf 过滤

问题描述

我正在尝试通过另一个值列表在列表中进行过滤

我想做这个

  selectedAreasList = ListOf(1,2,3)

  initialItemProductList.filter { it.areaId in setOf(selectedAreasList) }

反而

  initialItemProductList.filter { it.areaId in setOf(1,2,3) }

因为我不知道我的清单会有多少项目

标签: kotlinfilter

解决方案


不要在列表上使用,而是使用为所有s定义setOf的现有toSet函数:Sequence

selectedAreasList = listOf(1, 2, 3)
// make a set before the filter to avoid repeatedly making a set
selectedAreasSet = selectedAreasList.toSet()
initialItemProductList.filter { id.areaId in selectedAreasSet }

推荐阅读