// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information. using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; namespace System.Linq { public static partial class AsyncEnumerable { public static Task Min(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Min(source, selector, CancellationToken.None); } public static Task Min(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Min(source, selector, CancellationToken.None); } public static Task Sum(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Sum(source, CancellationToken.None); } public static Task Sum(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Sum(source, CancellationToken.None); } public static Task Sum(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Sum(source, CancellationToken.None); } public static Task Sum(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Sum(source, CancellationToken.None); } public static Task Sum(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Sum(source, CancellationToken.None); } public static Task Sum(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Sum(source, CancellationToken.None); } public static Task Sum(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Sum(source, CancellationToken.None); } public static Task Sum(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Sum(source, CancellationToken.None); } public static Task Sum(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Sum(source, CancellationToken.None); } public static Task Sum(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Sum(source, CancellationToken.None); } public static Task Sum(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Sum(source, selector, CancellationToken.None); } public static Task Sum(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Sum(source, selector, CancellationToken.None); } public static Task Sum(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Sum(source, selector, CancellationToken.None); } public static Task Sum(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Sum(source, selector, CancellationToken.None); } public static Task Sum(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Sum(source, selector, CancellationToken.None); } public static Task Sum(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Sum(source, selector, CancellationToken.None); } public static Task Sum(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Sum(source, selector, CancellationToken.None); } public static Task Sum(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Sum(source, selector, CancellationToken.None); } public static Task Sum(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Sum(source, selector, CancellationToken.None); } public static Task Sum(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Sum(source, selector, CancellationToken.None); } public static void ForEach(this IAsyncEnumerable source, Action action) { if (source == null) throw new ArgumentNullException("source"); if (action == null) throw new ArgumentNullException("action"); source.ForEachAsync(action).Wait(); } public static Task ForEachAsync(this IAsyncEnumerable source, Action action) { if (source == null) throw new ArgumentNullException("source"); if (action == null) throw new ArgumentNullException("action"); return ForEachAsync(source, action, CancellationToken.None); } public static void ForEach(this IAsyncEnumerable source, Action action) { if (source == null) throw new ArgumentNullException("source"); if (action == null) throw new ArgumentNullException("action"); source.ForEachAsync(action).Wait(); } public static Task ForEachAsync(this IAsyncEnumerable source, Action action) { if (source == null) throw new ArgumentNullException("source"); if (action == null) throw new ArgumentNullException("action"); return ForEachAsync(source, action, CancellationToken.None); } public static Task Average(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Average(source, CancellationToken.None); } public static Task Average(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Average(source, CancellationToken.None); } public static Task Average(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Average(source, CancellationToken.None); } public static Task Average(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Average(source, CancellationToken.None); } public static Task Average(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Average(source, CancellationToken.None); } public static Task Average(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Average(source, CancellationToken.None); } public static Task Average(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Average(source, CancellationToken.None); } public static Task Average(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Average(source, CancellationToken.None); } public static Task Average(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Average(source, selector, CancellationToken.None); } public static Task Average(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Average(source, selector, CancellationToken.None); } public static Task Average(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Average(source, selector, CancellationToken.None); } public static Task Average(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Average(source, selector, CancellationToken.None); } public static Task Average(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Average(source, selector, CancellationToken.None); } public static Task Average(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Average(source, selector, CancellationToken.None); } public static Task Average(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Average(source, selector, CancellationToken.None); } public static Task Average(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Average(source, selector, CancellationToken.None); } public static Task Average(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Average(source, selector, CancellationToken.None); } public static Task Average(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Average(source, selector, CancellationToken.None); } public static Task Max(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Max(source, CancellationToken.None); } public static Task Max(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Max(source, CancellationToken.None); } public static Task Max(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Max(source, CancellationToken.None); } public static Task Max(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Max(source, CancellationToken.None); } public static Task Max(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Max(source, CancellationToken.None); } public static Task Max(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Max(source, CancellationToken.None); } public static Task Max(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Max(source, CancellationToken.None); } public static Task Max(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Max(source, CancellationToken.None); } public static Task Max(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Max(source, CancellationToken.None); } public static Task Max(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Max(source, CancellationToken.None); } public static Task Max(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Max(source, CancellationToken.None); } public static Task Max(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Max(source, selector, CancellationToken.None); } public static Task Max(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Max(source, selector, CancellationToken.None); } public static Task Max(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Max(source, selector, CancellationToken.None); } public static Task Max(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Max(source, selector, CancellationToken.None); } public static Task Max(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Max(source, selector, CancellationToken.None); } public static Task Max(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Max(source, selector, CancellationToken.None); } public static Task Max(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Max(source, selector, CancellationToken.None); } public static Task Max(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Max(source, selector, CancellationToken.None); } public static Task Max(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Max(source, selector, CancellationToken.None); } public static Task Max(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Max(source, selector, CancellationToken.None); } public static Task Max(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Max(source, selector, CancellationToken.None); } public static Task Min(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Min(source, CancellationToken.None); } public static Task Min(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Min(source, CancellationToken.None); } public static Task Min(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Min(source, CancellationToken.None); } public static Task Min(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Min(source, CancellationToken.None); } public static Task Min(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Min(source, CancellationToken.None); } public static Task Min(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Min(source, CancellationToken.None); } public static Task Min(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Min(source, CancellationToken.None); } public static Task Min(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Min(source, CancellationToken.None); } public static Task Min(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Min(source, CancellationToken.None); } public static Task Min(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Min(source, CancellationToken.None); } public static Task Min(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Min(source, CancellationToken.None); } public static Task Min(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Min(source, selector, CancellationToken.None); } public static Task Min(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Min(source, selector, CancellationToken.None); } public static Task Min(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Min(source, selector, CancellationToken.None); } public static Task Min(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Min(source, selector, CancellationToken.None); } public static Task Min(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Min(source, selector, CancellationToken.None); } public static Task Min(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Min(source, selector, CancellationToken.None); } public static Task Min(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Min(source, selector, CancellationToken.None); } public static Task Min(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Min(source, selector, CancellationToken.None); } public static Task Min(this IAsyncEnumerable source, Func selector) { if (source == null) throw new ArgumentNullException("source"); if (selector == null) throw new ArgumentNullException("selector"); return Min(source, selector, CancellationToken.None); } public static Task SequenceEqual(this IAsyncEnumerable first, IAsyncEnumerable second, IEqualityComparer comparer) { if (first == null) throw new ArgumentNullException("first"); if (second == null) throw new ArgumentNullException("second"); if (comparer == null) throw new ArgumentNullException("comparer"); return SequenceEqual(first, second, comparer, CancellationToken.None); } public static Task SequenceEqual(this IAsyncEnumerable first, IAsyncEnumerable second) { if (first == null) throw new ArgumentNullException("first"); if (second == null) throw new ArgumentNullException("second"); return SequenceEqual(first, second, CancellationToken.None); } public static Task Aggregate(this IAsyncEnumerable source, TAccumulate seed, Func accumulator, Func resultSelector) { if (source == null) throw new ArgumentNullException("source"); if (accumulator == null) throw new ArgumentNullException("accumulator"); if (resultSelector == null) throw new ArgumentNullException("resultSelector"); return Aggregate(source, seed, accumulator, resultSelector, CancellationToken.None); } public static Task Aggregate(this IAsyncEnumerable source, TAccumulate seed, Func accumulator) { if (source == null) throw new ArgumentNullException("source"); if (accumulator == null) throw new ArgumentNullException("accumulator"); return Aggregate(source, seed, accumulator, CancellationToken.None); } public static Task Aggregate(this IAsyncEnumerable source, Func accumulator) { if (source == null) throw new ArgumentNullException("source"); if (accumulator == null) throw new ArgumentNullException("accumulator"); return Aggregate(source, accumulator, CancellationToken.None); } public static Task Count(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Count(source, CancellationToken.None); } public static Task Count(this IAsyncEnumerable source, Func predicate) { if (source == null) throw new ArgumentNullException("source"); if (predicate == null) throw new ArgumentNullException("predicate"); return Count(source, predicate, CancellationToken.None); } public static Task LongCount(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return LongCount(source, CancellationToken.None); } public static Task LongCount(this IAsyncEnumerable source, Func predicate) { if (source == null) throw new ArgumentNullException("source"); if (predicate == null) throw new ArgumentNullException("predicate"); return LongCount(source, predicate, CancellationToken.None); } public static Task All(this IAsyncEnumerable source, Func predicate) { if (source == null) throw new ArgumentNullException("source"); if (predicate == null) throw new ArgumentNullException("predicate"); return All(source, predicate, CancellationToken.None); } public static Task Any(this IAsyncEnumerable source, Func predicate) { if (source == null) throw new ArgumentNullException("source"); if (predicate == null) throw new ArgumentNullException("predicate"); return Any(source, predicate, CancellationToken.None); } public static Task Any(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Any(source, CancellationToken.None); } public static Task Contains(this IAsyncEnumerable source, TSource value, IEqualityComparer comparer) { if (source == null) throw new ArgumentNullException("source"); if (comparer == null) throw new ArgumentNullException("comparer"); return Contains(source, value, comparer, CancellationToken.None); } public static Task Contains(this IAsyncEnumerable source, TSource value) { if (source == null) throw new ArgumentNullException("source"); return Contains(source, value, CancellationToken.None); } public static Task First(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return First(source, CancellationToken.None); } public static Task First(this IAsyncEnumerable source, Func predicate) { if (source == null) throw new ArgumentNullException("source"); if (predicate == null) throw new ArgumentNullException("predicate"); return First(source, predicate, CancellationToken.None); } public static Task FirstOrDefault(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return FirstOrDefault(source, CancellationToken.None); } public static Task FirstOrDefault(this IAsyncEnumerable source, Func predicate) { if (source == null) throw new ArgumentNullException("source"); if (predicate == null) throw new ArgumentNullException("predicate"); return FirstOrDefault(source, predicate, CancellationToken.None); } public static Task Last(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Last(source, CancellationToken.None); } public static Task Last(this IAsyncEnumerable source, Func predicate) { if (source == null) throw new ArgumentNullException("source"); if (predicate == null) throw new ArgumentNullException("predicate"); return Last(source, predicate, CancellationToken.None); } public static Task LastOrDefault(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return LastOrDefault(source, CancellationToken.None); } public static Task LastOrDefault(this IAsyncEnumerable source, Func predicate) { if (source == null) throw new ArgumentNullException("source"); if (predicate == null) throw new ArgumentNullException("predicate"); return LastOrDefault(source, predicate, CancellationToken.None); } public static Task Single(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Single(source, CancellationToken.None); } public static Task Single(this IAsyncEnumerable source, Func predicate) { if (source == null) throw new ArgumentNullException("source"); if (predicate == null) throw new ArgumentNullException("predicate"); return Single(source, predicate, CancellationToken.None); } public static Task SingleOrDefault(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return SingleOrDefault(source, CancellationToken.None); } public static Task SingleOrDefault(this IAsyncEnumerable source, Func predicate) { if (source == null) throw new ArgumentNullException("source"); if (predicate == null) throw new ArgumentNullException("predicate"); return SingleOrDefault(source, predicate, CancellationToken.None); } public static Task ElementAt(this IAsyncEnumerable source, int index) { if (source == null) throw new ArgumentNullException("source"); return ElementAt(source, index, CancellationToken.None); } public static Task ElementAtOrDefault(this IAsyncEnumerable source, int index) { if (source == null) throw new ArgumentNullException("source"); return ElementAtOrDefault(source, index, CancellationToken.None); } public static Task ToArray(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return ToArray(source, CancellationToken.None); } public static Task> ToList(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return ToList(source, CancellationToken.None); } public static Task> ToDictionary(this IAsyncEnumerable source, Func keySelector, Func elementSelector, IEqualityComparer comparer) { if (source == null) throw new ArgumentNullException("source"); if (keySelector == null) throw new ArgumentNullException("keySelector"); if (elementSelector == null) throw new ArgumentNullException("elementSelector"); if (comparer == null) throw new ArgumentNullException("comparer"); return ToDictionary(source, keySelector, elementSelector, comparer, CancellationToken.None); } public static Task> ToDictionary(this IAsyncEnumerable source, Func keySelector, Func elementSelector) { if (source == null) throw new ArgumentNullException("source"); if (keySelector == null) throw new ArgumentNullException("keySelector"); if (elementSelector == null) throw new ArgumentNullException("elementSelector"); return ToDictionary(source, keySelector, elementSelector, CancellationToken.None); } public static Task> ToDictionary(this IAsyncEnumerable source, Func keySelector, IEqualityComparer comparer) { if (source == null) throw new ArgumentNullException("source"); if (keySelector == null) throw new ArgumentNullException("keySelector"); if (comparer == null) throw new ArgumentNullException("comparer"); return ToDictionary(source, keySelector, comparer, CancellationToken.None); } public static Task> ToDictionary(this IAsyncEnumerable source, Func keySelector) { if (source == null) throw new ArgumentNullException("source"); if (keySelector == null) throw new ArgumentNullException("keySelector"); return ToDictionary(source, keySelector, CancellationToken.None); } public static Task> ToLookup(this IAsyncEnumerable source, Func keySelector, Func elementSelector, IEqualityComparer comparer) { if (source == null) throw new ArgumentNullException("source"); if (keySelector == null) throw new ArgumentNullException("keySelector"); if (elementSelector == null) throw new ArgumentNullException("elementSelector"); if (comparer == null) throw new ArgumentNullException("comparer"); return ToLookup(source, keySelector, elementSelector, comparer, CancellationToken.None); } public static Task> ToLookup(this IAsyncEnumerable source, Func keySelector, Func elementSelector) { if (source == null) throw new ArgumentNullException("source"); if (keySelector == null) throw new ArgumentNullException("keySelector"); if (elementSelector == null) throw new ArgumentNullException("elementSelector"); return ToLookup(source, keySelector, elementSelector, CancellationToken.None); } public static Task> ToLookup(this IAsyncEnumerable source, Func keySelector, IEqualityComparer comparer) { if (source == null) throw new ArgumentNullException("source"); if (keySelector == null) throw new ArgumentNullException("keySelector"); if (comparer == null) throw new ArgumentNullException("comparer"); return ToLookup(source, keySelector, comparer, CancellationToken.None); } public static Task> ToLookup(this IAsyncEnumerable source, Func keySelector) { if (source == null) throw new ArgumentNullException("source"); if (keySelector == null) throw new ArgumentNullException("keySelector"); return ToLookup(source, keySelector, CancellationToken.None); } public static Task Average(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Average(source, CancellationToken.None); } public static Task Average(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return Average(source, CancellationToken.None); } public static Task IsEmpty(this IAsyncEnumerable source) { if (source == null) throw new ArgumentNullException("source"); return source.IsEmpty(CancellationToken.None); } public static Task Min(this IAsyncEnumerable source, IComparer comparer) { if (source == null) throw new ArgumentNullException("source"); if (comparer == null) throw new ArgumentNullException("comparer"); return source.Min(comparer, CancellationToken.None); } public static Task> MinBy(this IAsyncEnumerable source, Func keySelector) { if (source == null) throw new ArgumentNullException("source"); if (keySelector == null) throw new ArgumentNullException("keySelector"); return source.MinBy(keySelector, CancellationToken.None); } public static Task> MinBy(this IAsyncEnumerable source, Func keySelector, IComparer comparer) { if (source == null) throw new ArgumentNullException("source"); if (keySelector == null) throw new ArgumentNullException("keySelector"); if (comparer == null) throw new ArgumentNullException("comparer"); return source.MinBy(keySelector, comparer, CancellationToken.None); } public static Task Max(this IAsyncEnumerable source, IComparer comparer) { if (source == null) throw new ArgumentNullException("source"); if (comparer == null) throw new ArgumentNullException("comparer"); return source.Max(comparer, CancellationToken.None); } public static Task> MaxBy(this IAsyncEnumerable source, Func keySelector) { if (source == null) throw new ArgumentNullException("source"); if (keySelector == null) throw new ArgumentNullException("keySelector"); return source.MaxBy(keySelector, CancellationToken.None); } public static Task> MaxBy(this IAsyncEnumerable source, Func keySelector, IComparer comparer) { if (source == null) throw new ArgumentNullException("source"); if (keySelector == null) throw new ArgumentNullException("keySelector"); if (comparer == null) throw new ArgumentNullException("comparer"); return source.MaxBy(keySelector, comparer, CancellationToken.None); } } }