ストリームのフィルタのリストを設定する必要があります。ストリームのカスタマイズ可能なフィルタリング
ストリームには最初はフィルタがありませんが、時間の経過とともにアクティブなフィルタのリストが表示されます。
各フィルタの有効期間は厳密になります。
テストケースは次のとおりです。
var scheduler = new TestScheduler();
var input = scheduler.CreateColdObservable<char>(
ReactiveTest.OnNext(0100.Ms(), '1'),
ReactiveTest.OnNext(0200.Ms(), 'A'),
ReactiveTest.OnNext(0300.Ms(), '2'),
ReactiveTest.OnNext(0400.Ms(), 'B'),
ReactiveTest.OnNext(0500.Ms(), 'A'),
ReactiveTest.OnNext(0600.Ms(), 'B'),
ReactiveTest.OnNext(0700.Ms(), '5'),
ReactiveTest.OnNext(0800.Ms(), 'A'),
ReactiveTest.OnNext(0900.Ms(), 'C'));
// filters
// A between 70ms -> 550ms
// B between 330ms -> 400ms
// modeled as a string observable where:
// first word is the char to filter
// second word are the msecs duration of the filter
var filters = scheduler.CreateColdObservable<string>(
ReactiveTest.OnNext(0070.Ms(), "A 480"),
ReactiveTest.OnNext(0330.Ms(), "B 70")
);
var expected = scheduler.CreateColdObservable<char>(
ReactiveTest.OnNext(0100.Ms(), '1'),
ReactiveTest.OnNext(0300.Ms(), '2'),
ReactiveTest.OnNext(0600.Ms(), 'B'),
ReactiveTest.OnNext(0700.Ms(), '5'),
ReactiveTest.OnNext(0800.Ms(), 'A'),
ReactiveTest.OnNext(0900.Ms(), 'C'));
は、あなたがこれを行うための最良のRx-ソリューションがある私をお勧めすることはできますか?
PS:私は
public static class TickExtensions
{
public static long Ms(this int ms)
{
return TimeSpan.FromMilliseconds(ms).Ticks;
}
}
コードはコンパイルされません。私は 'Ms()'が長く返るべきだと思います。 'filters'は' CreateColdObservable 'のように見えます。 –
@LeeCampbell right、これを修正しました。 – zpul