The recording of the first ever ReactiveUI virtual conference is available on our YouTube Channel.


SelectMany<TDestination, TDestinationKey, TSource, TSourceKey>(IObservable<IChangeSet<TSource, TSourceKey>>, Func<TSource, IEnumerable<TDestination>>, Func<TDestination, TDestinationKey>) Method


Equivalent to a select many transform. To work, the key must individually identify each child.
Containing Type


public static IObservable<IChangeSet<TDestination, TDestinationKey>> SelectMany<TDestination, TDestinationKey, TSource, TSourceKey>(this IObservable<IChangeSet<TSource, TSourceKey>> source, Func<TSource, IEnumerable<TDestination>> manySelector, Func<TDestination, TDestinationKey> keySelector) 
    where TDestinationKey : notnull where TSourceKey : notnull

Type Parameters

Name Description
TDestination The type of the destination.
TDestinationKey The type of the destination key.
TSource The type of the source.
TSourceKey The type of the source key.


Name Type Description
source IObservable<IChangeSet<TSource, TSourceKey>> The source.
manySelector Func<TSource, IEnumerable<TDestination>> The selector for selecting the enumerable.
keySelector Func<TDestination, TDestinationKey> The key selector which must be unique across all.

Return Value

Type Description
IObservable<IChangeSet<TDestination, TDestinationKey>> An observable which emits the change set.