浏览代码

Use pattern matching.

Bart De Smet 6 年之前
父节点
当前提交
190e5b2631
共有 1 个文件被更改,包括 5 次插入2 次删除
  1. 5 2
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/DefaultIfEmpty.cs

+ 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);
                 }
+                else if (_source is IAsyncIListProvider<TSource> listProv)
+                {
+                    count = await listProv.GetCountAsync(onlyIfCheap: true, cancellationToken).ConfigureAwait(false);
+                }
                 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;