LINQ

一、查询语句

var queryResults = from n in all

where n.? 

orderby ? <descending>, +++

select n;

// (from c in customers select c.Region).Distinct();

二、方法

var queryResults = all.OrderBy(n => ? ).ThenBy(n => ?).+++

.Where(n=> n.?)

.Distinct();  //唯一

三、分组

var queryResults =
                from c in customers
                group c by c.Region into cg
                select new { TotalSales = cg.Sum(c => c.Sales), Region = cg.Key }  //key表示创建分组使用的条件
               ;

            var orderedResults =
                from cg in queryResults
                orderby cg.TotalSales descending
                select cg
             ;

四、Take 和 Skip

qureryResults.Take(n)   :结果中前n个;

queryResults.Skip(n)   :跳过前n个。

五、First 和 FirstOrDefault

返回结果集中第一个匹配给定条件的元素。

var queryResults =
                from c in customers
                select new { c.City, c.Country, c.Region }
               ;

            Console.WriteLine("A customer in Africa");
            Console.WriteLine(queryResults.First(c => c.Region == "Africa"));

            Console.WriteLine("A customer in Antartica");
            Console.WriteLine(queryResults.FirstOrDefault(c => c.Region == "Antartica"));

六、集运算符

var customerIDs =
               from c in customers
               select c.ID
               ;
            var orderIDs =
               from o in orders
               select o.ID
               ;
            var customersWithOrders = customerIDs.Intersect(orderIDs);
            Console.WriteLine("Customers with Orders:");
            foreach (var item in customersWithOrders)
            {
                Console.Write("{0} ", item);
            }
            Console.WriteLine();

            Console.WriteLine("Orders with no customers:");
            var ordersNoCustomers = orderIDs.Except(customerIDs);
            foreach (var item in ordersNoCustomers)
            {
                Console.Write("{0} ", item);
            }
            Console.WriteLine();

            Console.WriteLine("All Customer and Order IDs:");
            var allCustomerOrderIDs = orderIDs.Union(customerIDs);
            foreach (var item in allCustomerOrderIDs)
            {
                Console.Write("{0} ", item);
            } 
            Console.WriteLine();

七、Join 查询

var queryResults =
               from c in customers
               join o in orders on c.ID equals o.ID
               select new { c.ID, c.City, SalesBefore = c.Sales, NewOrder = o.Amount, SalesAfter = c.Sales+o.Amount };

            foreach (var item in queryResults)
            {
                Console.WriteLine(item);
            }






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值