LinQ—高级查询方法

  对于高级查询方法,主要分为五大类,详情下图:


【Distinct】:  避免重复值出现,也就是如果有两个数字2,那么使用集合类可以单一出现

首先我们来写一个数组,方便举例:

 // 数组数据persons
 int[ ] Arr = { 25, 36, 25, 2, 3, 9, 55, 581, 21, 15, 44, 78, 96 };

  • 聚合类

            Console.WriteLine("arr的最大值:" + Arr.Max());
            Console.WriteLine("arr的最小值:" + Arr.Min());
            Console.WriteLine("arr的平均值:" + Arr.Average());
            Console.WriteLine("arr的数组元素个数:" + Arr.Count());
            Console.WriteLine("arr的总和:" + Arr.Sum());
简单理解,就是使用的数组Arr的属性来显示想要的效果:

  • 排序类,关键字ThenBy

            var result = Arr.OrderBy(p => p.ToString().Substring(0, 1));  //按照首个数字从小到大排序
            var result = Arr.OrderBy(p => p.ToString().Substring(0, 1)).ThenBy(p => p);  //二次排序
            //降序排列
            var t = Arr.OrderBy(p => p.ToString().Substring(0, 1));     
            var result = from p in t orderby p descending select p;
  三种方法,第一种显示效果就是按照第一个数字来排序的,不过此方法一般不符合要求;二则在第一次排序的基础上再次按照从小到大排序;三则是降序排列。

第二种的显示效果:

  • 分区类:

  一个take一个skip,skip则跳过之意,take则执行

            var result = Arr.Skip(2).Take(3);        //跳过两个再取三个的值 
            var result = Arr.Skip(3);                //跳过三个的值,取余后的
            var result = Arr.SkipWhile(p => p >1);   //取出剩余的大于或者等于P之后的所有值,如p>1,所有值都满足,所以输出值为0
            var result = Arr.TakeWhile(p => p > 4);  //取出第一次符合条件的所有值,当遇见不符合条件的情况则停止执行
  在上数组中,由于每个值都大于1,所以第三个输出的值为空;最后一个到2的时候则不满足条件,停止执行,所以输出结果:

  • 生成类

  对于最后讲述的生成类,它并非之前的扩展方法,而是普通的静态方法

  Range只能产生整数序列,Repeat只能产生泛型序列

举例:

var result = System.Linq.Enumerable.Repeat(DateTime.Now, 10);    //显示当前日期,和次数
  五大类主要包括了LinqQ的各种常用的查询方法,其他的继续在实践中学习。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值