2010-12-08 5 views
2

におけるForkJoinの結果を集計しますSubscribe()IEnumerable<Book>の配列です。は、コードのこの部分を考慮受信

ForkJoin()の結果を集計する他の方法はありますか? Merge()とForkJoinのようなものを使うことを望んでいました。

答えて

3

すべての3つのサービスがBooksのリストを返し、あなたがリストをマージするSelectManyを使用することができますと仮定:

IObservable<Book> loadAll = 
    Observable.ForkJoin(
     service1.FindBooksAsObservable().Select(s => s), 
     service2.FindBooksAsObservable().Select(s => s), 
     service3.FindBooksAsObservable().Select(s => s) 
    ) 
    .Select(books => books.SelectMany(list => list).ToList()); 

loadAll.Subscribe(
    book => { /* will be called once with a single list of all items */ }); 

リストする出力を必要としない場合は、ToList()呼び出しを削除することができます。

+0

はありません、実際に私がしたいしたい単一のリスト内のすべてのサービスからのすべての書籍を受け取ることになっています。 –

+0

@maelcumx - 重複を削除する必要はないと思っていますが、更新を参照してください。 –

関連する問題