static async ValueTask <TSource[]> ToArrayAsync <TSource>(IAsyncEnumerable <TSource> source, CancellationToken cancellationToken)
        {
            var builder = new LargeArrayBuilder <TSource>(initialize: true);
            await builder.AddRangeAsync(source, cancellationToken);

            return(builder.ToArray());
        }
        static async ValueTask <TResult[]> ToArrayAsync <TEnumerable, TEnumerator, TSource, TResult>(this TEnumerable source, AsyncPredicate <TSource> predicate, AsyncSelector <TSource, TResult> selector, CancellationToken cancellationToken)
            where TEnumerable : IAsyncValueEnumerable <TSource, TEnumerator>
            where TEnumerator : struct, IAsyncEnumerator <TSource>
        {
            var builder = new LargeArrayBuilder <TResult>(initialize: true);
            await builder.AddRangeAsync <TEnumerable, TEnumerator, TSource>(source, predicate, selector, cancellationToken).ConfigureAwait(false);

            return(builder.ToArray());
        }
        public static async ValueTask <TSource[]> ToArrayAsync <TEnumerable, TEnumerator, TSource>(this TEnumerable source, CancellationToken cancellationToken = default)
            where TEnumerable : IAsyncValueEnumerable <TSource, TEnumerator>
            where TEnumerator : struct, IAsyncEnumerator <TSource>
        {
            var builder = new LargeArrayBuilder <TSource>(initialize: true);
            await builder.AddRangeAsync <TEnumerable, TEnumerator>(source, cancellationToken).ConfigureAwait(false);

            return(builder.ToArray());
        }
Exemple #4
0
        static async ValueTask <TSource[]> ToArrayAsync <TEnumerable, TEnumerator, TSource>(this TEnumerable source, AsyncPredicateAt <TSource> predicate, CancellationToken cancellationToken)
            where TEnumerable : notnull, IAsyncValueEnumerable <TSource, TEnumerator>
            where TEnumerator : struct, IAsyncEnumerator <TSource>
        {
            var builder = new LargeArrayBuilder <TSource>(initialize: true);
            await builder.AddRangeAsync <TEnumerable, TEnumerator>(source, predicate, cancellationToken);

            return(builder.ToArray());
        }