中的最新更新序列我想知道是否有一個現有的操作符或某種邏輯可以讓我重現具有2個源序列的CombineLatest
的行爲,但是增加了確定最後修改了2個序列中的哪一個。反過來,我想用這個區別來改變我在合併兩個序列的最新結果時的操作方式。確定並操作CombineLatest
我認爲表達我想要的一種好方法是給出一個方法簽名的例子來實現我所說的邏輯。
public static IObservable<TResult> MyOperator<TInLeft, TInRight, TResult>(
this IObservable<TInLeft> left,
this IObservable<TInRight> right,
Func<TInLeft, TInRight, bool, TResult> selector)
{
// ...magic
}
在這種情況下,left
和right
將是條目序列和selector
FUNC傳遞給該方法將具有其布爾參數值設置爲true
,以指示它是left
序列是的源最近的更改和false
如果它是最後更改的right
序列。
當然,爲了清楚起見,該方法也可以通過以下方式重新
public IObservable<TResult> MyOperator<TInLeft, TInRight, TResult>(
this IObservable<TInLeft> left,
this IObservable<TInRight> right,
Func<TInLeft, TInRight, TResult> whenLeft,
Func<TInLeft, TInRight, TResult> whenRight)
{
// ... more magic
}
哪裏,而不是使用一個布爾值來區分最近更新的序列,每個序列會有它以func的形式擁有自己的行爲。
用例這樣的操作將是我想有一個共同的結果是依賴於left
和right
序列(就像CombineLatest
)的組合,但優先考慮哪個有最新的信息。我希望我的意圖清楚明白。
是否有一個現有的運算符具有類似的基礎邏輯或可以適應此目的?我怎麼能夠完成這樣的行爲呢?我對某些可能有用的運營商有一個模糊的想法,但似乎可能有很多不同的方式,我只是不確定實現我想要的最佳方法。
好工作。你擊敗了我。只是一個小小的評論 - 你的比較運算符是錯誤的 - 它應該是'<'。 – Enigmativity
感謝您的提示,現在修復。真的很享受你的帖子。 –
謝謝。你真的嗎?你喜歡他們什麼? – Enigmativity