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)


<ExtensionAttribute> _
Public Shared Function SelectMany(Of TSource, TCollection, TResult) ( _
    source As IObservable(Of TSource), _
    collectionSelector As Func(Of TSource, IObservable(Of TCollection)), _
    resultSelector As Func(Of TSource, TCollection, TResult) _
) As IObservable(Of TResult)
Dim source As IObservable(Of TSource)
Dim collectionSelector As Func(Of TSource, IObservable(Of TCollection))
Dim resultSelector As Func(Of TSource, TCollection, TResult)
Dim returnValue As IObservable(Of TResult)

returnValue = source.SelectMany(collectionSelector, _
public static IObservable<TResult> SelectMany<TSource, TCollection, TResult>(
    this IObservable<TSource> source,
    Func<TSource, IObservable<TCollection>> collectionSelector,
    Func<TSource, TCollection, TResult> resultSelector
generic<typename TSource, typename TCollection, typename TResult>
static IObservable<TResult>^ SelectMany(
    IObservable<TSource>^ source, 
    Func<TSource, IObservable<TCollection>^>^ collectionSelector, 
    Func<TSource, TCollection, TResult>^ resultSelector
static member SelectMany : 
        source:IObservable<'TSource> * 
        collectionSelector:Func<'TSource, IObservable<'TCollection>> * 
        resultSelector:Func<'TSource, 'TCollection, 'TResult> -> IObservable<'TResult> 
JScript does not support generic types and methods.

Type Parameters

  • TSource
    The type of source.
  • TCollection
    The type of collection.
  • TResult
    The type of result.


  • collectionSelector
    Type: System.Func<TSource, IObservable<TCollection>>
    A transform function to apply to each element.
  • resultSelector
    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 or .

See Also


Observable Class

SelectMany Overload

System.Reactive.Linq Namespace