|
@@ -10,140 +10,54 @@ namespace System.Linq
|
|
|
{
|
|
|
public static partial class AsyncEnumerable
|
|
|
{
|
|
|
- public static IOrderedAsyncEnumerable<TSource> OrderBy<TSource, TKey>(this IAsyncEnumerable<TSource> source, Func<TSource, TKey> keySelector)
|
|
|
- {
|
|
|
- if (source == null)
|
|
|
- throw Error.ArgumentNull(nameof(source));
|
|
|
- if (keySelector == null)
|
|
|
- throw Error.ArgumentNull(nameof(keySelector));
|
|
|
-
|
|
|
- return new OrderedAsyncEnumerable<TSource, TKey>(source, keySelector, comparer: null, descending: false, parent: null);
|
|
|
- }
|
|
|
+ public static IOrderedAsyncEnumerable<TSource> OrderBy<TSource, TKey>(this IAsyncEnumerable<TSource> source, Func<TSource, TKey> keySelector) =>
|
|
|
+ new OrderedAsyncEnumerable<TSource, TKey>(source, keySelector, comparer: null, descending: false, parent: null);
|
|
|
|
|
|
- public static IOrderedAsyncEnumerable<TSource> OrderBy<TSource, TKey>(this IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<TKey>> keySelector)
|
|
|
- {
|
|
|
- if (source == null)
|
|
|
- throw Error.ArgumentNull(nameof(source));
|
|
|
- if (keySelector == null)
|
|
|
- throw Error.ArgumentNull(nameof(keySelector));
|
|
|
-
|
|
|
- return new OrderedAsyncEnumerableWithTask<TSource, TKey>(source, keySelector, comparer: null, descending: false, parent: null);
|
|
|
- }
|
|
|
+ public static IOrderedAsyncEnumerable<TSource> OrderBy<TSource, TKey>(this IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<TKey>> keySelector) =>
|
|
|
+ new OrderedAsyncEnumerableWithTask<TSource, TKey>(source, keySelector, comparer: null, descending: false, parent: null);
|
|
|
|
|
|
#if !NO_DEEP_CANCELLATION
|
|
|
- public static IOrderedAsyncEnumerable<TSource> OrderBy<TSource, TKey>(this IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<TKey>> keySelector)
|
|
|
- {
|
|
|
- if (source == null)
|
|
|
- throw Error.ArgumentNull(nameof(source));
|
|
|
- if (keySelector == null)
|
|
|
- throw Error.ArgumentNull(nameof(keySelector));
|
|
|
-
|
|
|
- return new OrderedAsyncEnumerableWithTaskAndCancellation<TSource, TKey>(source, keySelector, comparer: null, descending: false, parent: null);
|
|
|
- }
|
|
|
+ public static IOrderedAsyncEnumerable<TSource> OrderBy<TSource, TKey>(this IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<TKey>> keySelector) =>
|
|
|
+ new OrderedAsyncEnumerableWithTaskAndCancellation<TSource, TKey>(source, keySelector, comparer: null, descending: false, parent: null);
|
|
|
#endif
|
|
|
|
|
|
- public static IOrderedAsyncEnumerable<TSource> OrderBy<TSource, TKey>(this IAsyncEnumerable<TSource> source, Func<TSource, TKey> keySelector, IComparer<TKey> comparer)
|
|
|
- {
|
|
|
- if (source == null)
|
|
|
- throw Error.ArgumentNull(nameof(source));
|
|
|
- if (keySelector == null)
|
|
|
- throw Error.ArgumentNull(nameof(keySelector));
|
|
|
-
|
|
|
- return new OrderedAsyncEnumerable<TSource, TKey>(source, keySelector, comparer, descending: false, parent: null);
|
|
|
- }
|
|
|
+ public static IOrderedAsyncEnumerable<TSource> OrderBy<TSource, TKey>(this IAsyncEnumerable<TSource> source, Func<TSource, TKey> keySelector, IComparer<TKey> comparer) =>
|
|
|
+ new OrderedAsyncEnumerable<TSource, TKey>(source, keySelector, comparer, descending: false, parent: null);
|
|
|
|
|
|
- public static IOrderedAsyncEnumerable<TSource> OrderBy<TSource, TKey>(this IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<TKey>> keySelector, IComparer<TKey> comparer)
|
|
|
- {
|
|
|
- if (source == null)
|
|
|
- throw Error.ArgumentNull(nameof(source));
|
|
|
- if (keySelector == null)
|
|
|
- throw Error.ArgumentNull(nameof(keySelector));
|
|
|
-
|
|
|
- return new OrderedAsyncEnumerableWithTask<TSource, TKey>(source, keySelector, comparer, descending: false, parent: null);
|
|
|
- }
|
|
|
+ public static IOrderedAsyncEnumerable<TSource> OrderBy<TSource, TKey>(this IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<TKey>> keySelector, IComparer<TKey> comparer) =>
|
|
|
+ new OrderedAsyncEnumerableWithTask<TSource, TKey>(source, keySelector, comparer, descending: false, parent: null);
|
|
|
|
|
|
#if !NO_DEEP_CANCELLATION
|
|
|
- public static IOrderedAsyncEnumerable<TSource> OrderBy<TSource, TKey>(this IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<TKey>> keySelector, IComparer<TKey> comparer)
|
|
|
- {
|
|
|
- if (source == null)
|
|
|
- throw Error.ArgumentNull(nameof(source));
|
|
|
- if (keySelector == null)
|
|
|
- throw Error.ArgumentNull(nameof(keySelector));
|
|
|
-
|
|
|
- return new OrderedAsyncEnumerableWithTaskAndCancellation<TSource, TKey>(source, keySelector, comparer, descending: false, parent: null);
|
|
|
- }
|
|
|
+ public static IOrderedAsyncEnumerable<TSource> OrderBy<TSource, TKey>(this IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<TKey>> keySelector, IComparer<TKey> comparer) =>
|
|
|
+ new OrderedAsyncEnumerableWithTaskAndCancellation<TSource, TKey>(source, keySelector, comparer, descending: false, parent: null);
|
|
|
#endif
|
|
|
|
|
|
- public static IOrderedAsyncEnumerable<TSource> OrderByDescending<TSource, TKey>(this IAsyncEnumerable<TSource> source, Func<TSource, TKey> keySelector)
|
|
|
- {
|
|
|
- if (source == null)
|
|
|
- throw Error.ArgumentNull(nameof(source));
|
|
|
- if (keySelector == null)
|
|
|
- throw Error.ArgumentNull(nameof(keySelector));
|
|
|
-
|
|
|
- return new OrderedAsyncEnumerable<TSource, TKey>(source, keySelector, comparer: null, descending: true, parent: null);
|
|
|
- }
|
|
|
+ public static IOrderedAsyncEnumerable<TSource> OrderByDescending<TSource, TKey>(this IAsyncEnumerable<TSource> source, Func<TSource, TKey> keySelector) =>
|
|
|
+ new OrderedAsyncEnumerable<TSource, TKey>(source, keySelector, comparer: null, descending: true, parent: null);
|
|
|
|
|
|
- public static IOrderedAsyncEnumerable<TSource> OrderByDescending<TSource, TKey>(this IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<TKey>> keySelector)
|
|
|
- {
|
|
|
- if (source == null)
|
|
|
- throw Error.ArgumentNull(nameof(source));
|
|
|
- if (keySelector == null)
|
|
|
- throw Error.ArgumentNull(nameof(keySelector));
|
|
|
-
|
|
|
- return new OrderedAsyncEnumerableWithTask<TSource, TKey>(source, keySelector, comparer: null, descending: true, parent: null);
|
|
|
- }
|
|
|
+ public static IOrderedAsyncEnumerable<TSource> OrderByDescending<TSource, TKey>(this IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<TKey>> keySelector) =>
|
|
|
+ new OrderedAsyncEnumerableWithTask<TSource, TKey>(source, keySelector, comparer: null, descending: true, parent: null);
|
|
|
|
|
|
#if !NO_DEEP_CANCELLATION
|
|
|
- public static IOrderedAsyncEnumerable<TSource> OrderByDescending<TSource, TKey>(this IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<TKey>> keySelector)
|
|
|
- {
|
|
|
- if (source == null)
|
|
|
- throw Error.ArgumentNull(nameof(source));
|
|
|
- if (keySelector == null)
|
|
|
- throw Error.ArgumentNull(nameof(keySelector));
|
|
|
-
|
|
|
- return new OrderedAsyncEnumerableWithTaskAndCancellation<TSource, TKey>(source, keySelector, comparer: null, descending: true, parent: null);
|
|
|
- }
|
|
|
+ public static IOrderedAsyncEnumerable<TSource> OrderByDescending<TSource, TKey>(this IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<TKey>> keySelector) =>
|
|
|
+ new OrderedAsyncEnumerableWithTaskAndCancellation<TSource, TKey>(source, keySelector, comparer: null, descending: true, parent: null);
|
|
|
#endif
|
|
|
|
|
|
- public static IOrderedAsyncEnumerable<TSource> OrderByDescending<TSource, TKey>(this IAsyncEnumerable<TSource> source, Func<TSource, TKey> keySelector, IComparer<TKey> comparer)
|
|
|
- {
|
|
|
- if (source == null)
|
|
|
- throw Error.ArgumentNull(nameof(source));
|
|
|
- if (keySelector == null)
|
|
|
- throw Error.ArgumentNull(nameof(keySelector));
|
|
|
-
|
|
|
- return new OrderedAsyncEnumerable<TSource, TKey>(source, keySelector, comparer, descending: true, parent: null);
|
|
|
- }
|
|
|
+ public static IOrderedAsyncEnumerable<TSource> OrderByDescending<TSource, TKey>(this IAsyncEnumerable<TSource> source, Func<TSource, TKey> keySelector, IComparer<TKey> comparer) =>
|
|
|
+ new OrderedAsyncEnumerable<TSource, TKey>(source, keySelector, comparer, descending: true, parent: null);
|
|
|
|
|
|
- public static IOrderedAsyncEnumerable<TSource> OrderByDescending<TSource, TKey>(this IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<TKey>> keySelector, IComparer<TKey> comparer)
|
|
|
- {
|
|
|
- if (source == null)
|
|
|
- throw Error.ArgumentNull(nameof(source));
|
|
|
- if (keySelector == null)
|
|
|
- throw Error.ArgumentNull(nameof(keySelector));
|
|
|
-
|
|
|
- return new OrderedAsyncEnumerableWithTask<TSource, TKey>(source, keySelector, comparer, descending: true, parent: null);
|
|
|
- }
|
|
|
+ public static IOrderedAsyncEnumerable<TSource> OrderByDescending<TSource, TKey>(this IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<TKey>> keySelector, IComparer<TKey> comparer) =>
|
|
|
+ new OrderedAsyncEnumerableWithTask<TSource, TKey>(source, keySelector, comparer, descending: true, parent: null);
|
|
|
|
|
|
#if !NO_DEEP_CANCELLATION
|
|
|
- public static IOrderedAsyncEnumerable<TSource> OrderByDescending<TSource, TKey>(this IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<TKey>> keySelector, IComparer<TKey> comparer)
|
|
|
- {
|
|
|
- if (source == null)
|
|
|
- throw Error.ArgumentNull(nameof(source));
|
|
|
- if (keySelector == null)
|
|
|
- throw Error.ArgumentNull(nameof(keySelector));
|
|
|
-
|
|
|
- return new OrderedAsyncEnumerableWithTaskAndCancellation<TSource, TKey>(source, keySelector, comparer, descending: true, parent: null);
|
|
|
- }
|
|
|
+ public static IOrderedAsyncEnumerable<TSource> OrderByDescending<TSource, TKey>(this IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<TKey>> keySelector, IComparer<TKey> comparer) =>
|
|
|
+ new OrderedAsyncEnumerableWithTaskAndCancellation<TSource, TKey>(source, keySelector, comparer, descending: true, parent: null);
|
|
|
#endif
|
|
|
|
|
|
public static IOrderedAsyncEnumerable<TSource> ThenBy<TSource, TKey>(this IOrderedAsyncEnumerable<TSource> source, Func<TSource, TKey> keySelector)
|
|
|
{
|
|
|
if (source == null)
|
|
|
throw Error.ArgumentNull(nameof(source));
|
|
|
- if (keySelector == null)
|
|
|
- throw Error.ArgumentNull(nameof(keySelector));
|
|
|
|
|
|
return source.CreateOrderedEnumerable(keySelector, comparer: null, descending: false);
|
|
|
}
|
|
@@ -152,8 +66,6 @@ namespace System.Linq
|
|
|
{
|
|
|
if (source == null)
|
|
|
throw Error.ArgumentNull(nameof(source));
|
|
|
- if (keySelector == null)
|
|
|
- throw Error.ArgumentNull(nameof(keySelector));
|
|
|
|
|
|
return source.CreateOrderedEnumerable(keySelector, comparer: default(IComparer<TKey>), descending: false);
|
|
|
}
|
|
@@ -163,8 +75,6 @@ namespace System.Linq
|
|
|
{
|
|
|
if (source == null)
|
|
|
throw Error.ArgumentNull(nameof(source));
|
|
|
- if (keySelector == null)
|
|
|
- throw Error.ArgumentNull(nameof(keySelector));
|
|
|
|
|
|
return source.CreateOrderedEnumerable(keySelector, comparer: null, descending: false);
|
|
|
}
|
|
@@ -174,8 +84,6 @@ namespace System.Linq
|
|
|
{
|
|
|
if (source == null)
|
|
|
throw Error.ArgumentNull(nameof(source));
|
|
|
- if (keySelector == null)
|
|
|
- throw Error.ArgumentNull(nameof(keySelector));
|
|
|
|
|
|
return source.CreateOrderedEnumerable(keySelector, comparer, descending: false);
|
|
|
}
|
|
@@ -184,8 +92,6 @@ namespace System.Linq
|
|
|
{
|
|
|
if (source == null)
|
|
|
throw Error.ArgumentNull(nameof(source));
|
|
|
- if (keySelector == null)
|
|
|
- throw Error.ArgumentNull(nameof(keySelector));
|
|
|
|
|
|
return source.CreateOrderedEnumerable(keySelector, comparer, descending: false);
|
|
|
}
|
|
@@ -195,8 +101,6 @@ namespace System.Linq
|
|
|
{
|
|
|
if (source == null)
|
|
|
throw Error.ArgumentNull(nameof(source));
|
|
|
- if (keySelector == null)
|
|
|
- throw Error.ArgumentNull(nameof(keySelector));
|
|
|
|
|
|
return source.CreateOrderedEnumerable(keySelector, comparer, descending: false);
|
|
|
}
|
|
@@ -206,8 +110,6 @@ namespace System.Linq
|
|
|
{
|
|
|
if (source == null)
|
|
|
throw Error.ArgumentNull(nameof(source));
|
|
|
- if (keySelector == null)
|
|
|
- throw Error.ArgumentNull(nameof(keySelector));
|
|
|
|
|
|
return source.CreateOrderedEnumerable(keySelector, comparer: null, descending: true);
|
|
|
}
|
|
@@ -216,8 +118,6 @@ namespace System.Linq
|
|
|
{
|
|
|
if (source == null)
|
|
|
throw Error.ArgumentNull(nameof(source));
|
|
|
- if (keySelector == null)
|
|
|
- throw Error.ArgumentNull(nameof(keySelector));
|
|
|
|
|
|
return source.CreateOrderedEnumerable(keySelector, comparer: default(IComparer<TKey>), descending: true);
|
|
|
}
|
|
@@ -227,8 +127,6 @@ namespace System.Linq
|
|
|
{
|
|
|
if (source == null)
|
|
|
throw Error.ArgumentNull(nameof(source));
|
|
|
- if (keySelector == null)
|
|
|
- throw Error.ArgumentNull(nameof(keySelector));
|
|
|
|
|
|
return source.CreateOrderedEnumerable(keySelector, comparer: null, descending: true);
|
|
|
}
|
|
@@ -238,8 +136,6 @@ namespace System.Linq
|
|
|
{
|
|
|
if (source == null)
|
|
|
throw Error.ArgumentNull(nameof(source));
|
|
|
- if (keySelector == null)
|
|
|
- throw Error.ArgumentNull(nameof(keySelector));
|
|
|
|
|
|
return source.CreateOrderedEnumerable(keySelector, comparer, descending: true);
|
|
|
}
|
|
@@ -248,8 +144,6 @@ namespace System.Linq
|
|
|
{
|
|
|
if (source == null)
|
|
|
throw Error.ArgumentNull(nameof(source));
|
|
|
- if (keySelector == null)
|
|
|
- throw Error.ArgumentNull(nameof(keySelector));
|
|
|
|
|
|
return source.CreateOrderedEnumerable(keySelector, comparer, descending: true);
|
|
|
}
|
|
@@ -259,8 +153,6 @@ namespace System.Linq
|
|
|
{
|
|
|
if (source == null)
|
|
|
throw Error.ArgumentNull(nameof(source));
|
|
|
- if (keySelector == null)
|
|
|
- throw Error.ArgumentNull(nameof(keySelector));
|
|
|
|
|
|
return source.CreateOrderedEnumerable(keySelector, comparer, descending: true);
|
|
|
}
|