LinQ To Objects 高级查询方法

简介: <h1><span style="font-size:24px"> 什么是LinQ To Objects?</span></h1> <p><span style="font-size:24px">   </span><span style="font-size:18px">  用一个例子解释,首先定义一个数组,查询数组中的最大值:</span><span style="font-size

 什么是LinQ To Objects?

     用一个例子解释,首先定义一个数组,查询数组中的最大值:  

int[] arr = { 123, 2, 3, 45, 654, 2324, 897, 56, 6554, 4, 3, 6, 8, 434 };

     旧的方法:   

   int max=0 ;
   foreach(int a in arr)
   {
       if(a>=max)
          max=a;
   }
   Console.Write("最大值:"+ max);
   

      LinQ To Objects方法:   

    Console.WriteLine("arr的最大值:"+ arr.Max());

     由此可以看出,LinQ To Objects是一种新的处理集合的方法,相对于旧方法中必须编写指定如何从集合检索数据的复杂的foreach循环,而LinQ方法只需要编写描述要检索的内容的声明性代码。


LinQ To Objects高级查询方法



<span style="font-size:18px;">    //LinQ To Objects查询高级方法
    //数组数据persons
    int[] arr = {123, 2, 3, 45, 654, 2324, 897, 56, 6554, 4, 3, 6, 8,434};</span>
     

      聚合类: 

    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());
     

      排序类   

   var result = arr.OrderBy(p => p.ToString().Substring(0, 1));  //按首字母排序
   var result = arr.OrderBy(p => p.ToString().Substring(0, 1)).ThenBy(p => p);  //2次排序

   var t = arr.OrderBy(p => p.ToString().Substring(0, 1));   //对数组进行
   var result = from p in t orderby  p descending select p;  //降序排列

    分区类   

  var result = arr.Skip(2).Take(3);跳过2个值取后面的3个值
  var result = arr.Skip(3); //跳过3个值取后面所有的值
  var result = arr.SkipWhile(p => p > 4); //方法体部分是该LingQ语句不在往后执行的条件,当第一次遇到条件成立时取剩下的所有数据
  var result = arr.TakeWhile(p => p > 4); //方法体部分是该LinQ语句提取数据的条件,当第一次遇到条件不成立的情况时停止执行


   集合类

  var result = arr.Distinct();  //把数组中重复的记录过滤掉


   生成类 

  var result= System.Linq.Enumerable.Range(10,50);  //生成连续的数列
  var result = System.Linq.Enumerable.Repeat(DateTime.Now, 10); //生成10个相同的日期


 总结

 通过这些小小的例子,对新的知识从不知道到了解,初步学习LinQ ToObjects是什么和怎么用,更加深入的理解需要更加深入的学习和实践!


  
   



     

相关文章
|
存储 C语言
C语言for循环详解
C语言for循环详解
|
关系型数据库 MySQL 数据库
Mysql页面crash问题复现&恢复方法
title: mysql页面crash问题复现&恢复方法 date: 2019-07-25 11:33:06 categories: Mysql 看到一个MYSQL单节点CRASH的案例,这里用MYSQL5.
1408 0
|
Linux 调度 数据库
linux系统编程(十一)线程同步(完结)(上)
linux系统编程(十一)线程同步(完结)
255 0
linux系统编程(十一)线程同步(完结)(上)
|
算法 Java
阿猫阿狗都能看懂的银行家算法
说起银行家算法,实际上是自己本科计算机操作系统的1个课程设计。由于在项目中用到相关的内容,因此便简单进行下回顾。 在并发编程中,当多个进程或线程对某个不可抢占资源进行争夺时会引起死锁的问题,而使用银行家算法主要的目的是为了避免系统产生死锁,对于死锁我们可以将其理解为坏账。
阿猫阿狗都能看懂的银行家算法
|
12天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1267 5
|
1天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!
|
11天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1283 87