5. 分组操作符—【LINQ标准查询操作符】

public class GroupBy_LINQ
    {
        static string ContextString = System.Configuration.ConfigurationSettings.AppSettings["ContextString"].ToString();
        static DataContext context = new DataContext(ContextString);
        static Table<SalesOrderHeader> orders = context.GetTable<SalesOrderHeader>();

        public static void GroupBy_Print()
        {
            var groupByQuery = orders.Where(ord => ord.SalesPersonID > 0 && ord.SalesPersonID!=null).GroupBy(ord => ord.SalesPersonID, order => order.CustomerID);

            foreach (var item in groupByQuery)
            {
                Console.WriteLine(item.Key);
                foreach (var o in item)
                {
                    Console.WriteLine("   " + o.ToString());
                }
            }

            Console.ReadKey();
        }

        public static void GroupBy_Print2()
        {
            // 混合语法,因为GroupBy在查询语法中不能使用
            var groupByQuery = (from o in orders
                                where o.SalesPersonID > 0 && o.SalesPersonID != null
                                select o).GroupBy(ord => ord.SalesPersonID, ord => ord.CustomerID);                

            foreach (var item in groupByQuery)
            {
                Console.WriteLine(item.Key);
                foreach (var o in item)
                {
                    Console.WriteLine("   " + o.ToString());
                }
            }

            Console.ReadKey();
        }
    }
posted @ 2010-04-17 21:34  CityWalker  阅读(559)  评论(0编辑  收藏  举报
天天来