2014-09-24 29 views
4

我有一个List[(A, Option[B])]。我想过滤出第二个元素中包含None的所有元组,然后“解开”Option,给出List[A, B]过滤(A,选项[B])的列表并从选项中提取值

我目前使用这样的:

list.filter(_._2.isDefined).map(tup => (tup._1, tup._2.get)) 

有没有更好的办法(更简洁)?

回答

7

您可以通过模式匹配和collect做到这一点:

list.collect { case (a, Some(b)) => (a, b) } 
+0

不错!我会尝试一下。 – Ralph 2014-09-24 20:41:03

相关问题