我正在尝试在kotlin的对象列表中查找值,并为其使用“过滤器”,但如果找到该值,则需要返回true或false,但是在这种情况下,filter会向我返回对象列表匹配。
t.filter { it.retailerId == value }
¿我在对象列表中找到此值时如何返回布尔值?
如果您需要该元素正好是一个:
t.filter { it.retailerId == value }.size == 1
如果不是:
t.any { it.retailerId == value }
带有foldRight并在找到它时中断:
t.foldRight(false) {val, res ->
if(it.retailerId == value) {
return@foldRight true
} else {
res
}
}
您可以将firstOrNull()
与特定谓词一起使用:
firstOrNull()
如果val found = t.firstOrNull { it.retailerId == value } != null
不返回firstOrNull()
,则意味着找到该值。
除了null
之外,您还可以将firstOrNull
与相同的谓词一起使用:
any