瀏覽代碼

Implementing IAsyncIListProvider on Empty.

Bart De Smet 8 年之前
父節點
當前提交
0dfce7fee3
共有 1 個文件被更改,包括 8 次插入1 次删除
  1. 8 1
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Empty.cs

+ 8 - 1
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Empty.cs

@@ -3,6 +3,7 @@
 // See the LICENSE file in the project root for more information. 
 
 using System.Collections.Generic;
+using System.Threading;
 using System.Threading.Tasks;
 
 namespace System.Linq
@@ -14,10 +15,16 @@ namespace System.Linq
             return new EmptyAsyncIterator<TValue>();
         }
 
-        private sealed class EmptyAsyncIterator<TValue> : AsyncIterator<TValue>
+        private sealed class EmptyAsyncIterator<TValue> : AsyncIterator<TValue>, IAsyncIListProvider<TValue>
         {
             public override AsyncIterator<TValue> Clone() => new EmptyAsyncIterator<TValue>();
 
+            public Task<int> GetCountAsync(bool onlyIfCheap, CancellationToken cancellationToken) => Task.FromResult(0);
+
+            public Task<TValue[]> ToArrayAsync(CancellationToken cancellationToken) => Task.FromResult(Array.Empty<TValue>());
+
+            public Task<List<TValue>> ToListAsync(CancellationToken cancellationToken) => Task.FromResult(new List<TValue>());
+
             protected override Task<bool> MoveNextCore() => TaskExt.False;
         }
     }