Linq初步学习

Linq:Language integrated query
linq是C#语言的一个扩展,可以将数据查询直接集成到编程语言本身当中。linq解决了处理非常大的数据集合的问题。
1、第一个Linq例子:(Linq查询语法)

using System.Linq;
var querys=from p in AppInfo
           where p.AppType=="AAA"
           select p);

2、Linq方法语法

var querys=AppInfo.Where(x=>x.AppType=="AAA");

3、排序查询结果(Linq查询语法)

var querys=from p in AppInfo
           where p.AppType=="AAA"  //查询条件
           orderby p.StarTime    //按开始时间排序(升序排列)
           select p);
-----------------
var querys=from p in AppInfo
           where p.AppType=="AAA"  //查询条件
           orderby p.StarTime descending   //降序排列
           select p);
-----------------
var querys=from p in AppInfo
           where p.AppType=="AAA"  //查询条件
           orderby p.name.Substring(p.name.length-1) //根据表达式排列
           select p);

4、排序查询结果(Linq方法语法)

var querys=AppInfo.OrderBy(n=>n)
                  .Where(x=>x.AppType=="AAA");//按自身元素排序,但是这里行不通,只取一种表示形式
-------------------
var querys=AppInfo.OrderByDescending(x=>x.StratTime)
                  .Where(x=>x.AppType=="AAA");
-------------------
var querys=AppInfo
        .OrderBy(x=>x.name.Substring(x.name.length-1))
        .Where(x=>x.AppType=="AAA");

5、聚合运算符
Count();
Max();
Min();
Average();
Sum();
6、投影:在查询中创建新对象(Linq查询语法)
投影:是在linq查询中从其他数据类型中创建新的数据类型的技术术语
select关键字为投影运算符

var querys=from c in customers
            where c.Region=="Asia"
            select new {c.City,c.Country,c.Sales};//必须为new{}的形式,不可以select c.City,c.Country,c.Sales,会报错。此处为创建的匿名类型的新对象

7、投影:在查询中创建新对象(Linq方法语法)

var querys=customers.Where (x=>x.Region=="Asia")
                    .Select(x=>new {x.City,x.Country,x.Sales};

注:一般情况下各种方法的使用顺序并没有严格规定,但是当后面用到的字段在前面没有被提及时,可能会报错,因此也需要查阅顺序是否正确
8、单值选则查询

var querys=customers.Select(x=>x.City).Distinct();//去重      

9、Any()和All()方法
确定数据是否满足某个条件Any(),或者确保所有数据都满足某个条件All()
10、多级排序(Linq查询语法)

var querys=from c in customers
            orderby c.City,c.Country,c.Sales
            select c;//依次按给定的字段排序

11、多级排序(Linq方法语法)

var querys=customers
            .Orderby (C=>c.City)
            .ThenByDescending(c=>c.Country)
            .ThenBy(c=>c.Sales)
            .Select(c=>new{c.ID,c.City,c.Region});//依次按给定的字段排序

12、组合查询

var query= from c in customers
           group c by c.Region into cg
           select new{TotalSales=cg.Sum(c=>c.Sales),
                      Region=cg.Select(c=>c.Region)} 

13、Take()和Skip()
Take()从查询结果中提取前n个结果
Skip()跳过前n个结果,返回剩余结果

var querys=customers
            .Orderby (C=>c.City)
            .ThenByDescending(c=>c.Country)
            .ThenBy(c=>c.Sales)
            .Select(c=>new{c.ID,c.City,c.Region})
            .Take(5);//取前5条数据

14、First()和FirstOrDefault()
取第一个值,或者区第一个值或默认值
15、Linq集运算符
Intersect(),Union()等
16、Join查询

var query= from c in customer
           join o in orders on c.ID equals o.ID
           select new {c.ID,c.City,SalesBefore=c.sales,
                       NewOrder=o.Account,
                       SalesAfter=c.Sales+o.Account}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值