Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
SelectMany(TSource, TResult) Method (IObservable(TSource), Func(TSource, IObservable(TResult)), Func(Exception, IObservable(TResult)), Func(IObservable(TResult)))

Observable.SelectMany<TSource, TResult> Method (IObservable<TSource>, Func<TSource, IObservable<TResult>>, Func<Exception, IObservable<TResult>>, Func<IObservable<TResult>>)

Projects each element of an observable sequence to an observable sequence and flattens the resulting observable sequences into one observable sequence.

Namespace:  System.Reactive.Linq
Assembly:  System.Reactive (in System.Reactive.dll)

public static IObservable<TResult> SelectMany<TSource, TResult>(
	this IObservable<TSource> source,
	Func<TSource, IObservable<TResult>> onNext,
	Func<Exception, IObservable<TResult>> onError,
	Func<IObservable<TResult>> onCompleted

Type Parameters


The type of source.


The type of result.


Type: System.IObservable<TSource>
An observable sequence of elements to project.
Type: System.Func<TSource, IObservable<TResult>>
A transform function to apply to each element.
Type: System.Func<Exception, IObservable<TResult>>
A transform function to apply when an error occurs in the source sequence.
Type: System.Func<IObservable<TResult>>
A transform function to apply when the end of the source sequence is reached.

Return Value

Type: System.IObservable<TResult>
An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence.

Usage Note

In Visual Basic and C#, you can call this method as an instance method on any object of type IObservable<TSource>. When you use instance method syntax to call this method, omit the first parameter. For more information, see https://msdn.microsoft.com/en-us/library/bb384936.aspx or https://msdn.microsoft.com/en-us/library/bb383977.aspx.
© 2015 Microsoft