Rxで任意の数のストリームを「圧縮」しようとしていますが、要素は対応していますが、順不同で処理される可能性があります。各ストリームの要素には、それらを一致させるために使用できる識別子があります。例えば。要素は次のようになります。私たちは、同じキーを共有する要素を一致させたい場合はRxはプロパティで結合することによって多くのストリームを結合します
|-A-----------A
|--B---------B-
|-----C------C-
|-----ABC-----ABC <- zip
しかし、どのような:
public class Element
{
public string Key {get; set;}
}
通常、ジッパーはちょうどその発生インデックスで要素を組み合わせたのだろうか?私はもっとこのように動作しますシーケンスを探しています:
|--2A-------1A----------
|----1B----------2B-----
|------1C-----------2C--
|-----------1ABC----2ABC <- zipped by key 1 & 2 respectively
(この例では、キーは1または2である)私はGroupJoinは、このシナリオに合っていることを感じるが、それは2つしか観測を提供していますそれらを連鎖させることは、かなり早く手を伸ばしてしまった。
私はAnd/Then/Whenも見ましたが、このシナリオのための構造をどのように構成するのか本当に分かりませんでした。
理想的には、結果セレクタの入力が同じキーを持つことが保証されている、結果セレクタを呼び出して提供できる拡張メソッドが必要です。
どのようにこの問題にアプローチしますか?