LINQ常用集合类的扩展方法

1.过滤

where:where方法用于根据条件对数据进行过滤使用方法如下

IEnumerable<User> list1 = list.Where(x => x.Age > 18 && x.Address =="江苏");

2.获取一条数据

Single :如果确认有且只有一条满足要求,那么就用single方法。如果没有满足条件,或者满足条件的数据多余一条single方法就会抛出异常。

SingleOrDefault:如果确认最多只有一条数据满足要求,可以使用SingleOrDefault方法。如果满足条件多于一条SingleOrDefault方法就会抛出异常,如果没有满足条件SingleOrDefault方法会返回类型的默认值。

First:如果满足条件的数据有一条或者多条,First方法就会返回第一条数据,如果没有满足条件的数据First方法就会抛出异常。

FirstOrDefault:如果满足条件的数据有一条或者多条,FirstOrDefault方法会返回第一条数据,如果没有满足条件的数据,FirstOrDefault方法就会返回类型的默认值。

            User u1 = list.Single(x => x.Age == 18);
            User u2 = list.SingleOrDefault(x => x.Age == 18);
            User u3 = list.First(x => x.Age == 18);
            User u4 = list.FirstOrDefault(x => x.Age == 18);

这4组方法的返回值都是符合条件的一条数据,每组方法都有两个重载方法一个有参数,另外一个有Fun<TSouree,bool> predicate

3.判断是否有一条满足条件的数据

 Any:方法用于根据条件对数据进行过滤,返回值为bool类型

            bool b1 = list.Any(x => x.Age == 18 );
            bool b2= list.Where(x => x.Age == 18 ).Any();

Any只关心有没有符合条件的数据,不会关心符号条件的数据有几条,因此只要遇到一个满足条件的数据就会停止向后继续检索。

 4.聚合函数

Max:最大值

Min:最小值

Average:平均值

Sum:总和

Count:总数

            long max = list.Max(x => x.Age);    
            long min = list.Min(x => x.Age);    
            double age = list.Average(x => x.Age);    
            long sum = list.Sum(x => x.Age);
            int count = list.Count(); 

这些聚合函数也可以和Where,Skip,Take等方法一起组合使用

  5.限制结果集

     Skip(n):用于跳过跳过第n条数据

    Take(n):用于获取n条数据

 var userlist = list.Skip(1).Take(3);

假设我list中有5条数据,skip(1)跳过了第一条take(3)取到后面的三条数据结果就是userlist中就是2,3,4。限制结果集的方法主要主要的应用场景的分页查询。

6.排序 

OrderBy:用于对数据进行正序排列

OrderByDescending:用于对数据进行逆向排序

            var userlist = list.OrderBy(x => x.Id);   
            var userlist = list.OrderByDescending(x => x.Id);   

7.分组

GroupBy:GroupBy可以用来分组,类似于SQL中的GroupBy下面演示根据年龄进行分组,计算组内人数

var userinfo = list.GroupBy(x => x.Age);

8.投影

Select可以对集合进行投影操作,通俗点说就是把集合中的每一项逐项转换为另外一种类型。

IEnumerable<string> userinfo = list.Select(x=>x.Gender==1?"男":"女");

根据上方代码用于Select把list中的Gender提取出来转换为String类型的男女

 8.集合的转换

ToArray: 把IEnumerable<T>类型转换为数组类型

ToList:把IEnumerable<T>类型转换为List<T>类型

            User[] userinfo = list.Where(x => x.Age > 18).ToArray();
            List<User> userinfo2 = list.Where(x => x.Age > 18).ToList();

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值