Browse Source

Use pattern matching.

Bart De Smet 6 years ago
parent
commit
190e5b2631

+ 5 - 2
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/DefaultIfEmpty.cs

@@ -117,10 +117,13 @@ namespace System.Linq
                 {
                 {
                     count = await _source.CountAsync(cancellationToken).ConfigureAwait(false);
                     count = await _source.CountAsync(cancellationToken).ConfigureAwait(false);
                 }
                 }
+                else if (_source is IAsyncIListProvider<TSource> listProv)
+                {
+                    count = await listProv.GetCountAsync(onlyIfCheap: true, cancellationToken).ConfigureAwait(false);
+                }
                 else
                 else
                 {
                 {
-                    var listProv = _source as IAsyncIListProvider<TSource>;
-                    count = listProv == null ? -1 : await listProv.GetCountAsync(onlyIfCheap: true, cancellationToken).ConfigureAwait(false);
+                    count = -1;
                 }
                 }
 
 
                 return count == 0 ? 1 : count;
                 return count == 0 ? 1 : count;