コード例 #1
0
        public static void Run()
        {
            var customers = PlinqDataSample.GetCustomers();

            // Take the first 20, preserving the original order
            var firstTwentyCustomers = customers
                                       .AsParallel()
                                       .AsOrdered()
                                       .Take(20);

            foreach (var c in firstTwentyCustomers)
            {
                Console.WriteLine("{0} ", c.CustomerID);
            }

            Console.WriteLine();

            // All elements in reverse order.
            var reverseOrder = customers
                               .AsParallel()
                               .AsOrdered()
                               .Reverse();

            foreach (var v in reverseOrder)
            {
                Console.WriteLine("{0} ", v.CustomerID);
            }
        }
コード例 #2
0
        public static void Run()
        {
            var orders       = PlinqDataSample.GetOrders();
            var orderDetails = PlinqDataSample.GetOrderDetails();

            var q2 = orders.AsParallel()
                     .Where(o => o.OrderDate < DateTime.Parse("07/04/1997"))
                     .Select(o => o)
                     .OrderBy(o => o.CustomerID) // Preserve original ordering for Take operation.
                     .Take(20)
                     .AsUnordered()              // Remove ordering constraint to make join faster.
                     .Join(
                orderDetails.AsParallel(),
                ord => ord.OrderID,
                od => od.OrderID,
                (ord, od) =>
                new
            {
                ID       = ord.OrderID,
                Customer = ord.CustomerID,
                Product  = od.ProductID
            }
                )
                     .OrderBy(i => i.Product); // Apply new ordering to final result sequence.

            foreach (var v in q2)
            {
                Console.WriteLine("{0} {1} {2}", v.ID, v.Customer, v.Product);
            }
        }