// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT License. // See the LICENSE file in the project root for more information. using System.Collections.Generic; namespace System.Linq { public static partial class AsyncEnumerableEx { // REVIEW: This is really an n-ary Prepend. Should we add n-ary overloads of Append and Prepend as well? // If so, likely in Ix rather than System.Linq.Async. /// /// Prepends a sequence of values to an async-enumerable sequence. /// /// The type of the elements in the source sequence. /// Source sequence to prepend values to. /// Values to prepend to the specified sequence. /// The source sequence prepended with the specified values. /// or is null. public static IAsyncEnumerable StartWith(this IAsyncEnumerable source, params TSource[] values) { if (source == null) throw Error.ArgumentNull(nameof(source)); if (values == null) throw Error.ArgumentNull(nameof(values)); return values.ToAsyncEnumerable().Concat(source); } } }