public static ReadOnlyListExtensions.SelectManyEnumerable <ValueWrapper <TSource>, TSource, TSubEnumerable, TSubEnumerator, TResult, TSelector> SelectMany <TSource, TSubEnumerable, TSubEnumerator, TResult, TSelector>( this ImmutableList <TSource> source, TSelector selector = default) where TSubEnumerable : IValueEnumerable <TResult, TSubEnumerator> where TSubEnumerator : struct, IEnumerator <TResult> where TSelector : struct, IFunction <TSource, TSubEnumerable> => ReadOnlyListExtensions.SelectMany <ValueWrapper <TSource>, TSource, TSubEnumerable, TSubEnumerator, TResult, TSelector>(new ValueWrapper <TSource>(source), selector);
public static ReadOnlyListExtensions.SelectManyEnumerable <ImmutableArray <TSource>, TSource, TSubEnumerable, TSubEnumerator, TResult> SelectMany <TSource, TSubEnumerable, TSubEnumerator, TResult>( this ImmutableArray <TSource> source, Selector <TSource, TSubEnumerable> selector) where TSubEnumerable : IValueEnumerable <TResult, TSubEnumerator> where TSubEnumerator : struct, IEnumerator <TResult> => ReadOnlyListExtensions.SelectMany <ImmutableArray <TSource>, TSource, TSubEnumerable, TSubEnumerator, TResult>(source, selector);
public static ReadOnlyListExtensions.SelectManyEnumerable <ValueWrapper <TSource>, TSource, TSubEnumerable, TSubEnumerator, TResult, FunctionWrapper <TSource, TSubEnumerable> > SelectMany <TSource, TSubEnumerable, TSubEnumerator, TResult>( this ImmutableArray <TSource> source, Func <TSource, TSubEnumerable> selector) where TSubEnumerable : IValueEnumerable <TResult, TSubEnumerator> where TSubEnumerator : struct, IEnumerator <TResult> => ReadOnlyListExtensions.SelectMany <ValueWrapper <TSource>, TSource, TSubEnumerable, TSubEnumerator, TResult>(new ValueWrapper <TSource>(source), selector);