collectFirst
trait Collection[A] {
def collectFirst[B](f: PartialFunction[A, B]): Option[B]
}
collectFirst applies the partial function f to the first element in this collection for which f is defined and returns its result wrapped with Some.
If the partial function f is not defined for any element in this collection then None is returned.