2017-01-05 6 views
0

を構築:これは理論的には可能であるか、私は完全に間違った道を進んでいた場合パターンマッチは、複数のSeqs

statuses.map(result => { 
    (status.matchStatus, status.source) match { 
     case ("Matched", Some(API.name)) => //Add status to a matchedApi seq 
     case ("Matched", Some(MANUAL.name)) => //Add status to a matchedManual seq 
     case ("Changed", Some(API.name)) => //Add status to a changedApi seq 
     case ("Changed", Some(ENTRY.name)) => //Add status to a changedManual seq   
    } 
}) 

誰もが知っていますこれらのリストを構築するのは?

+1

のようなアクセスをした後、あなたは '.foldLeft'でそれを行うことができまたは(tailrec)関数を使用して – cchantep

答えて

2

それは動的グループを持つことが許容できるなら、あなたは、ステータス+ソースタプルによってグループあなた値

val groups = statuses.groupBy(x => (x.matchStatus, x.source)) 

この

val matchedApi = groups.get("Matched", Some(API.name)).getOrElse(Seq.empty) 
val changedManual = groups.get("Changed",Some(MANUAL.name)).getOrElse(Seq.empty) 
+0

「マッチした」グループをすべて最初のキーとして取得することはできますか? – maloney

+0

groups.filter(entry => entry._1._1 == "Matched") – Cortwave

関連する問題