2015-12-21 147 views
2

我們遇到了方法調用服務返回IObservable<T1>但我們的客戶端期望IObservable<T2>。將T1轉換爲T2是很簡單的。Rx:使用不同類型的觀察值創建後續可觀察值(鏈接觀察者)

Rx中有什麼東西允許這個嗎? (即鏈式觀察員)

我知道我可以手動創建一個輔助觀察者,然後聽原始觀察者的變化,並將它們轉換爲新類型,但想知道是否有更乾淨的方法來做到這一點?

非常感謝,

回答

3

你可以投你IObservable<T1>IObservable<T2>使用Select

IObservable<T2> stream = service.MethodCall().Select(TrivialConversion); 

private T2 TrivialConversion(T1 param) 
{ 
    return new T2(param); 
} 
+0

大謝謝。這很乾淨,很好。 – kha