我想在嵌套的forEach循环中进行类似break
的操作,以过滤searchView中的数据(如果数据内容在我的搜索中包含任何单词)。>>
val filtered = mutableListOf<EventEntity>() rawDataList.forEach {data -> text.split(' ').forEach { word -> if (data.content.contains(word, ignoreCase = true)) { filtered.add(data) return@forEach // **There is more than one label with such a name in this scope** } } }
我的情况下是否存在优雅的解决方案?
我想在嵌套的forEach循环中进行类似的操作,以过滤searchView中的数据(如果数据内容在我的搜索中包含任何单词)。 val筛选= mutableListOf
似乎在寻找any
扩展方法。从javadoc:
如果至少一个元素与给定的[谓词]相匹配,则返回true
。>
val filtered = rawDataList.filter { data ->
text.split(' ').any { data.content.contains(it, ignoreCase = true) }
}.toMutableList()
[可接受的答案是一个很好的解决方案,但是如果您遇到此错误并且无法使用内置函数修复它,则可以通过在块之前添加name@
将自定义标签应用于lambdas:
rawDataList.forEach outer@{data ->
text.split(' ').forEach { word ->
if (data.content.contains(word, ignoreCase = true)) {
filtered.add(data)
return@outer
}
}
}