3
からは、与えられた:反応性の拡張:ペアリング値IObservable
class CharPair
{
char _a;
char _b;
CharPair(char a, char b) { _a = a; _b = b; }
}
IObservable<char> keyPresses = ... // a sequence of key presses
私はすべての2つの文字を取って、新しい
IObservable <CharPair>を作成するにはどうすればよい
?
など。
'a','1','b','2','c','3','d','4'
->
CharPair('a','1'),CharPair('b','2'),CharPair('c','3'),CharPair('d','4')
これまでのところ、私は以下のことをしていますが、これはかなり長続きしているようですが、改善できるのでしょうか?
IObservable<char> keyPresses = KeyPresses().ToObservable().Publish();
var odds = keyPresses.Where((_,i) => (i&1) == 1);
var evens = keyPresses.Where((_,i) => (i&1) == 0);
IObservable<CharPair> charPairs = evens.Zip(odds, (e, o) => new CharPair(e,o));
'Observable.Create'は、戻り値を必要とする(' Action') –