我有一个List[A]
,其中A
是一个案例类,有许多领域,x
和y
是Option[double]
。我试图根据以下两个条件筛选此列表:
val resFiltered = res.filter(c => (c.x.getOrElse(num) != num) &&
(c.y.getOrElse(num) != num)
)
其中num
实际上是一个随机数。我基本上过滤列表以摆脱A
s x
或y
的任何字段为空。有更优雅的方式吗?谢谢。
根据我的搜索,this flatten approach可能很有用,但它不支持这些字段。
你说x
和y
是Option[Double]
所以他们不能为空。看起来这就是你的代码所做的......
.filter(c => c.x.nonEmpty || c.y.nonEmpty)
...但你说你要“摆脱”如果“任何一个领域......”,这可能意味着应该使用&&
而不是||
。