瀏覽代碼

Adding GroupBy examples.

Bart De Smet 8 年之前
父節點
當前提交
0868b5733a
共有 1 個文件被更改,包括 26 次插入0 次删除
  1. 26 0
      AsyncRx.NET/Playground/Program.cs

+ 26 - 0
AsyncRx.NET/Playground/Program.cs

@@ -33,6 +33,8 @@ namespace Playground
             //await CombineLatestAsync();
             //await ConcatAsync();
             //await DelayAsync();
+            //await GroupByAsync();
+            //await GroupBySelectManyAsync();
             //await MergeAsync();
             //await PrependAsync();
             //await RangeAsync();
@@ -123,6 +125,30 @@ namespace Playground
                     .SubscribeAsync(Print<string>()); // TODO: Use ForEachAsync.
         }
 
+        static async Task GroupByAsync()
+        {
+            await
+                AsyncObservable.Interval(TimeSpan.FromMilliseconds(250))
+                    .Timestamp()
+                    .Take(20)
+                    .GroupBy(t => t.Timestamp.Millisecond / 100)
+                    .SubscribeAsync(async g =>
+                    {
+                        await g.Select(x => g.Key + " - " + x).SubscribeAsync(Print<string>());
+                    });
+        }
+
+        static async Task GroupBySelectManyAsync()
+        {
+            await
+                AsyncObservable.Interval(TimeSpan.FromMilliseconds(250))
+                    .Timestamp()
+                    .Take(20)
+                    .GroupBy(t => t.Timestamp.Millisecond / 100)
+                    .SelectMany(g => g, (g, x) => g.Key + " - " + x)
+                    .SubscribeAsync(Print<string>());
+        }
+
         static async Task MergeAsync()
         {
             var subject = new SequentialSimpleAsyncSubject<IAsyncObservable<int>>();