public static TResult Aggregate<T, TResult1, TResult2, TResult>(
	this IEnumerable<T> source,
	Func<IObservable<T>, IObservable<TResult1>> accumulator1,
	Func<IObservable<T>, IObservable<TResult2>> accumulator2,
	Func<TResult1, TResult2, TResult> resultSelector
)
<ExtensionAttribute>
Public Shared Function Aggregate(Of T, TResult1, TResult2, TResult) ( 
	source As IEnumerable(Of T),
	accumulator1 As Func(Of IObservable(Of T), IObservable(Of TResult1)),
	accumulator2 As Func(Of IObservable(Of T), IObservable(Of TResult2)),
	resultSelector As Func(Of TResult1, TResult2, TResult)
) As TResultpublic:
[ExtensionAttribute]
generic<typename T, typename TResult1, typename TResult2, typename TResult>
static TResult Aggregate(
	IEnumerable<T>^ source, 
	Func<IObservable<T>^, IObservable<TResult1>^>^ accumulator1, 
	Func<IObservable<T>^, IObservable<TResult2>^>^ accumulator2, 
	Func<TResult1, TResult2, TResult>^ resultSelector
)[<ExtensionAttribute>]
static member Aggregate : 
        source : IEnumerable<'T> * 
        accumulator1 : Func<IObservable<'T>, IObservable<'TResult1>> * 
        accumulator2 : Func<IObservable<'T>, IObservable<'TResult2>> * 
        resultSelector : Func<'TResult1, 'TResult2, 'TResult> -> 'TResult This operator executes immediately.
Each accumulator argument is a function that receives an IObservableT, which when subscribed to, produces the items in the source sequence and in original order; the function must then return an IObservableT that produces a single aggregate on completion (when OnCompleted is called. An error is raised at run-time if the IObserverT returned by an accumulator function produces no result or produces more than a single result.
| InvalidOperationException | An IObservableT returned by an accumulator function produced zero or more than a single aggregate result. |