| File: AsyncEnumerable\AggregateEnumerableAsync.cs | Web Access |
| Project: src\nuget-client\src\NuGet.Core\NuGet.Common\NuGet.Common.csproj (NuGet.Common) |
// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System.Collections.Generic; namespace NuGet.Common { /// <summary> /// Aggregates from a list of already ordered enumerables /// The ordered result will contain only unique values /// If comparer/EqualityComparer are not provided the default ones for that type will be used. /// If the provided enumerables are not sorted already, the behavior is undefined /// </summary> public class AggregateEnumerableAsync<T> : IEnumerableAsync<T> { private readonly IList<IEnumerableAsync<T>> _asyncEnumerables; private readonly IComparer<T>? _comparer; private readonly IEqualityComparer<T>? _equalityComparer; public AggregateEnumerableAsync(IList<IEnumerableAsync<T>> asyncEnumerables, IComparer<T>? comparer, IEqualityComparer<T>? equalityComparer) { _asyncEnumerables = asyncEnumerables; _comparer = comparer; _equalityComparer = equalityComparer; } public IEnumeratorAsync<T> GetEnumeratorAsync() { return new AggregateEnumeratorAsync<T>(_asyncEnumerables, _comparer, _equalityComparer); } } }