Răsfoiți Sursa

Extending the demo project.

Bart De Smet 8 ani în urmă
părinte
comite
d6530afbe5
1 a modificat fișierele cu 77 adăugiri și 4 ștergeri
  1. 77 4
      Ix.NET/Source/Playground/Program.cs

+ 77 - 4
Ix.NET/Source/Playground/Program.cs

@@ -25,7 +25,7 @@ namespace Playground
             await Task.Yield();
         }
 
-        [Demo(1, "LINQ to Objects for IEnumerable<T>")]
+        [Demo(11, "LINQ to Objects for IEnumerable<T>")]
         static void Linq()
         {
             var xs = new List<int> { 1, 2, 3 };
@@ -37,7 +37,19 @@ namespace Playground
             }
         }
 
-        [Demo(2, "LINQ to Objects for IEnumerable<T> - Interactive Extensions")]
+        [Demo(12, "LINQ to Objects for IQueryable<T>")]
+        static void LinqQueryable()
+        {
+            var xs = new List<int> { 1, 2, 3 }.AsQueryable();
+            var ys = xs.Where(x => x % 2 == 0);
+
+            foreach (var y in ys)
+            {
+                Console.WriteLine(y);
+            }
+        }
+
+        [Demo(21, "LINQ to Objects for IEnumerable<T> - Interactive Extensions")]
         static void Ix()
         {
             var xs = new List<int> { 1, 2, 3 };
@@ -49,7 +61,19 @@ namespace Playground
             }
         }
 
-        [Demo(3, "LINQ to Objects for IAsyncEnumerable<T>")]
+        [Demo(22, "LINQ to Objects for IQueryable<T> - Interactive Extensions")]
+        static void IxQueryable()
+        {
+            var xs = new List<int> { 1, 2, 3 }.AsQueryable();
+            var ys = xs.Distinct(x => x % 2);
+
+            foreach (var y in ys)
+            {
+                Console.WriteLine(y);
+            }
+        }
+
+        [Demo(31, "LINQ to Objects for IAsyncEnumerable<T>")]
         static async Task AsyncLinq()
         {
             var xs = new List<int> { 1, 2, 3 };
@@ -79,12 +103,61 @@ namespace Playground
 #endif
         }
 
-        [Demo(4, "LINQ to Objects for IAsyncEnumerable<T> - Interactive Extensions")]
+        [Demo(32, "LINQ to Objects for IAsyncQueryable<T>")]
+        static async Task AsyncLinqQueryable()
+        {
+            var xs = new List<int> { 1, 2, 3 }.AsQueryable();
+            var ys = xs.ToAsyncEnumerable().Where(x => x % 2 == 0);
+
+#if CSHARP8
+            foreach await (var y in ys)
+            {
+                Console.WriteLine(y);
+            }
+#else
+            var e = ys.GetAsyncEnumerator();
+
+            try
+            {
+                while (await e.MoveNextAsync())
+                {
+                    var y = e.Current;
+
+                    Console.WriteLine(y);
+                }
+            }
+            finally
+            {
+                await e.DisposeAsync();
+            }
+#endif
+        }
+
+        [Demo(41, "LINQ to Objects for IAsyncEnumerable<T> - Interactive Extensions")]
         static async Task AsyncIx()
         {
             var xs = new List<int> { 1, 2, 3 };
             var ys = xs.ToAsyncEnumerable().Distinct(x => x % 2);
 
+#if CSHARP8
+            foreach await (var y in ys)
+            {
+                Console.WriteLine(y);
+            }
+#else
+            await ys.ForEachAsync(y =>
+            {
+                Console.WriteLine(y);
+            });
+#endif
+        }
+
+        [Demo(42, "LINQ to Objects for IAsyncQueryable<T> - Interactive Extensions")]
+        static async Task AsyncIxQueryable()
+        {
+            var xs = new List<int> { 1, 2, 3 }.AsQueryable();
+            var ys = xs.ToAsyncEnumerable().Distinct(x => x % 2);
+
 #if CSHARP8
             foreach await (var y in ys)
             {