public static RecordObserver <T> RecordWithGetValueAndSubscribe <T>(this IReadOnlyReactiveProperty <T> source) { var d = new SingleAssignmentDisposable(); var observer = new RecordObserver <T>(d); d.Disposable = source.GetValueAndSubscribe(observer); return(observer); }
public static RecordObserver <T> Record <T>(this IObservable <T> source) { var d = new SingleAssignmentDisposable(); var observer = new RecordObserver <T>(d); d.Disposable = source.Subscribe(observer); return(observer); }
public void GroupBy() { var subject = new Subject <int>(); RecordObserver <int> a = null; RecordObserver <int> b = null; RecordObserver <int> c = null; subject.GroupBy(x => x % 3) .Subscribe(x => { if (x.Key == 0) { a = x.Record(); } else if (x.Key == 1) { b = x.Record(); } else if (x.Key == 2) { c = x.Record(); } }); subject.OnNext(99); subject.OnNext(100); subject.OnNext(101); subject.OnNext(0); subject.OnNext(1); subject.OnNext(2); a.Values.Is(99, 0); b.Values.Is(100, 1); c.Values.Is(101, 2); }