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

Observable.SelectMany<TSource, TCollection, TResult> Method (IObservable<TSource>, Func<TSource, IObservable<TCollection>>, Func<TSource, TCollection, 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, TCollection, TResult>(
	this IObservable<TSource> source,
	Func<TSource, IObservable<TCollection>> collectionSelector,
	Func<TSource, TCollection, TResult> resultSelector

Type Parameters


The type of source.


The type of collection.


The type of result.


Type: System.IObservable<TSource>
An observable sequence of elements to project.
Type: System.Func<TSource, IObservable<TCollection>>
A transform function to apply to each element.
Type: System.Func<TSource, TCollection, TResult>
A transform function to apply to each element of the intermediate sequence.

Return Value

Type: System.IObservable<TResult>
An observable sequence whose elements are the result of invoking the one-to-many transform function collectionSelector on each element of the input sequence and then mapping each of those sequence elements and their corresponding source element to a result element.

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