2014-09-24 56 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