过滤(A,选项[B])的列表并从选项中提取值
问题描述:
我有一个List[(A, Option[B])]
。我想过滤出第二个元素中包含None
的所有元组,然后“解开”Option
,给出List[A, B]
。过滤(A,选项[B])的列表并从选项中提取值
我目前使用这样的:
list.filter(_._2.isDefined).map(tup => (tup._1, tup._2.get))
有没有更好的办法(更简洁)?
答
您可以通过模式匹配和collect
做到这一点:
list.collect { case (a, Some(b)) => (a, b) }
不错!我会尝试一下。 – Ralph 2014-09-24 20:41:03