Explorar o código

Reordering Join overloads.

Bart De Smet %!s(int64=8) %!d(string=hai) anos
pai
achega
2e57c01c13
Modificáronse 1 ficheiros con 6 adicións e 7 borrados
  1. 6 7
      Ix.NET/Source/System.Interactive.Async/Join.cs

+ 6 - 7
Ix.NET/Source/System.Interactive.Async/Join.cs

@@ -4,14 +4,13 @@
 
 
 using System.Collections.Generic;
 using System.Collections.Generic;
 using System.Diagnostics;
 using System.Diagnostics;
-using System.Threading;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
 
 
 namespace System.Linq
 namespace System.Linq
 {
 {
     public static partial class AsyncEnumerable
     public static partial class AsyncEnumerable
     {
     {
-        public static IAsyncEnumerable<TResult> Join<TOuter, TInner, TKey, TResult>(this IAsyncEnumerable<TOuter> outer, IAsyncEnumerable<TInner> inner, Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector, Func<TOuter, TInner, TResult> resultSelector, IEqualityComparer<TKey> comparer)
+        public static IAsyncEnumerable<TResult> Join<TOuter, TInner, TKey, TResult>(this IAsyncEnumerable<TOuter> outer, IAsyncEnumerable<TInner> inner, Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector, Func<TOuter, TInner, TResult> resultSelector)
         {
         {
             if (outer == null)
             if (outer == null)
                 throw new ArgumentNullException(nameof(outer));
                 throw new ArgumentNullException(nameof(outer));
@@ -23,13 +22,11 @@ namespace System.Linq
                 throw new ArgumentNullException(nameof(innerKeySelector));
                 throw new ArgumentNullException(nameof(innerKeySelector));
             if (resultSelector == null)
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
                 throw new ArgumentNullException(nameof(resultSelector));
-            if (comparer == null)
-                throw new ArgumentNullException(nameof(comparer));
 
 
-            return new JoinAsyncIterator<TOuter, TInner, TKey, TResult>(outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer);
+            return new JoinAsyncIterator<TOuter, TInner, TKey, TResult>(outer, inner, outerKeySelector, innerKeySelector, resultSelector, EqualityComparer<TKey>.Default);
         }
         }
 
 
-        public static IAsyncEnumerable<TResult> Join<TOuter, TInner, TKey, TResult>(this IAsyncEnumerable<TOuter> outer, IAsyncEnumerable<TInner> inner, Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector, Func<TOuter, TInner, TResult> resultSelector)
+        public static IAsyncEnumerable<TResult> Join<TOuter, TInner, TKey, TResult>(this IAsyncEnumerable<TOuter> outer, IAsyncEnumerable<TInner> inner, Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector, Func<TOuter, TInner, TResult> resultSelector, IEqualityComparer<TKey> comparer)
         {
         {
             if (outer == null)
             if (outer == null)
                 throw new ArgumentNullException(nameof(outer));
                 throw new ArgumentNullException(nameof(outer));
@@ -41,8 +38,10 @@ namespace System.Linq
                 throw new ArgumentNullException(nameof(innerKeySelector));
                 throw new ArgumentNullException(nameof(innerKeySelector));
             if (resultSelector == null)
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
                 throw new ArgumentNullException(nameof(resultSelector));
+            if (comparer == null)
+                throw new ArgumentNullException(nameof(comparer));
 
 
-            return new JoinAsyncIterator<TOuter, TInner, TKey, TResult>(outer, inner, outerKeySelector, innerKeySelector, resultSelector, EqualityComparer<TKey>.Default);
+            return new JoinAsyncIterator<TOuter, TInner, TKey, TResult>(outer, inner, outerKeySelector, innerKeySelector, resultSelector, comparer);
         }
         }
 
 
         internal sealed class JoinAsyncIterator<TOuter, TInner, TKey, TResult> : AsyncIterator<TResult>
         internal sealed class JoinAsyncIterator<TOuter, TInner, TKey, TResult> : AsyncIterator<TResult>