// 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);
}
}
}