public static IAsyncEnumerable <TResult> SelectManyAsync <TSource, TResult>(this IAsyncEnumerable <TSource> source, Func <TSource, int, Task <IEnumerable <TResult> > > selector)
 => selector == null ? throw new ArgumentNullException(nameof(selector))
                         : AsyncIteratorEnumerable.Create(() => new SelectManyIterator <TSource, TResult, TResult>(source, (o, i) => selector(o, i).AsAsyncEnumerable(), (_, o) => o));
 public static IAsyncEnumerable <TSource> AppendAsync <TSource>(this IAsyncEnumerable <TSource> source, Task <TSource> element)
 => AsyncIteratorEnumerable.Create(() => new AppendTaskIterator <TSource>(source, element));
Example #3
0
 public static IAsyncEnumerable <TResult> ConcurrentSelectAsync <TSource, TResult>(this IAsyncEnumerable <TSource> source, Func <TSource, int, Task <TResult> > selector, int maxConcurrency)
 => AsyncIteratorEnumerable.Create(() => new ConcurrentSelectIterator <TSource, TResult>(source, selector, maxConcurrency));
 public static IAsyncEnumerable <TResult> ZipAsync <TFirst, TSecond, TResult>(this IAsyncEnumerable <TFirst> first, Task <IEnumerable <TSecond> > second, Func <TFirst, TSecond, Task <TResult> > resultSelector)
 => AsyncIteratorEnumerable.Create(() => new ZipIteratorAsync <TFirst, TSecond, TResult>(first, second.AsAsyncEnumerable(), resultSelector));
Example #5
0
 public static IAsyncEnumerable <TResult> ConcurrentSelectAsync <TSource, TResult>(this IAsyncEnumerable <TSource> source, Func <TSource, Task <TResult> > selector, int maxConcurrency)
 => selector == null ? throw new ArgumentNullException(nameof(selector))
                         : AsyncIteratorEnumerable.Create(() => new ConcurrentSelectIterator <TSource, TResult>(source, (o, _) => selector.Invoke(o), maxConcurrency));
 public static IAsyncEnumerable <TResult> Zip <TFirst, TSecond, TResult>(this IEnumerable <TFirst> first, IAsyncEnumerable <TSecond> second, Func <TFirst, TSecond, TResult> resultSelector)
 => AsyncIteratorEnumerable.Create(() => new ZipIterator <TFirst, TSecond, TResult>(first.AsAsyncEnumerable(), second, resultSelector));
 public static IAsyncEnumerable <TSource> Concat <TSource>(this IAsyncEnumerable <TSource> first, Task <IEnumerable <TSource> > second)
 => AsyncIteratorEnumerable.Create(() => new ConcatIterator <TSource>(first, second.AsAsyncEnumerable()));
Example #8
0
 public static IAsyncEnumerable <TResult> SelectMany <TSource, TCollection, TResult>(this Task <IEnumerable <TSource> > source, Func <TSource, int, IAsyncEnumerable <TCollection> > collectionSelector, Func <TSource, TCollection, Task <TResult> > resultSelector)
 => collectionSelector == null ? throw new ArgumentNullException(nameof(collectionSelector))
                         : resultSelector == null ? throw new ArgumentNullException(nameof(resultSelector))
                         : AsyncIteratorEnumerable.Create(() => new SelectManyIteratorAsync <TSource, TCollection, TResult>(source.AsAsyncEnumerable(), collectionSelector, resultSelector));
Example #9
0
 public static IAsyncEnumerable <TResult> SelectMany <TSource, TCollection, TResult>(this IAsyncEnumerable <TSource> source, Func <TSource, IAsyncEnumerable <TCollection> > collectionSelector, Func <TSource, TCollection, TResult> resultSelector)
 => collectionSelector == null ? throw new ArgumentNullException(nameof(collectionSelector))
                         : resultSelector == null ? throw new ArgumentNullException(nameof(resultSelector))
                         : AsyncIteratorEnumerable.Create(() => new SelectManyIterator <TSource, TCollection, TResult>(source, (o, _) => collectionSelector(o), resultSelector));