The IObservable<T>.CombineLatest extension method is very similar to IObservable<T>.Zip and IObservable<T>.Merge in that it combines two observable collections and returns a new one.
Unlike IObservable<T>.Merge, IObservable<T>.CombineLatest does not require the merged observable collections to be of the same type.
Like IObservable<T>.Zip, IObservable<T>.CombineLatest combines ‘pairs‘ of values from the two observable collections, but unlike Zip when a new value becomes available on one collection it does not wait till a new value to be available on the other collection, instead it takes whatever the latest value is from the other collection (provided there is one):
Again, like the Merge method, you can either invoke CombineLatest as an extension method:
var zs = xs.CombineLatest(ys, (a, b) => a + b);
or you can invoke it as static method:
var zs = Observable.CombineLatest(xs, ys, (a, b) => a + b);
Pingback: StatArb: Rx CombineLatest and JoinBlock (Visual Studio Async CTP) – Part 3 « Tales from a Trading Desk
Pingback: StatArb: Rx CombineLatest and JoinBlock (Visual Studio Async CTP) – Part 3 » Lab49 Blog